Я использую drawRect:
в своем подклассе UITableViewCell для производительности рендеринга при прокрутке; все в ячейке (текст и графика) отображается в drawRect:
. На дисплее сетчатки нового iPad ячейка выглядит очень размытой.
Для сравнения, вот скриншот, на котором показаны обе ячейки (вверху) и другое изображение одинакового размера внизу. Разница между качеством нижнего изображения и качеством ячеек очевидна.
Это на физическом устройстве, а не на симуляторе. Я проверил, что UIImage
экземпляров, которые я использую, имеют масштаб 2
; изображения аватара пользователя загружаются из Интернета, поэтому проблема не в суффиксе @2x
. «Потрясающее» изображение — это тот же ресурс, загруженный из основного пакета. Далее сам текст размыт.
Я пробовал разные варианты сглаживания, но безрезультатно. Я также пытался установить contentScaleFactor
моего представления и contentScale
слоя моего представления на [[UIScreen mainScreen] scale]
, но это тоже не помогает.
Какие-либо предложения?
Редактировать:
Вот фрагмент метода drawRect:
, отвечающего за рендеринг аватара пользователя. _avatar
— это переменная экземпляра, а addRoundedRectToPath()
просто обрезает радиус угла в 5 точек от пути контекста.
{
CGContextSaveGState(context);
addRoundedRectToPath(context, avatarFrame, 5, 5);
CGContextClip(context);
[_avatar drawInRect:avatarFrame];
CGContextRestoreGState(context);
}
Текст комментария отображается аналогичным образом:
[[UIColor whiteColor] set];
[_body drawInRect:textRect withFont:kPXCompositePhotoCommentCellBodyFont];
Я развертываю iOS 5.0 с базовым SDK 5.1, используя Xcode 4.3.2.
drawRect:
вместо меня. Единственное, что я делаю с контекстом, это добавляю закругленные углы, но проблема сохраняется как при их удалении, так и в тексте, чей контекст не тронут. - person Ash Furrow   schedule 22.03.2012