UITextView с белым фоном, отображающим цветной слой в инструментах и ​​симуляторе

Итак, у меня есть некоторые UILabels и UITextViews в ячейке. Моя таблица немного прокручивалась, и я попробовал утилиту "Color blending layers", доступную в iOS-симуляторе и инструментах. Он показывает красным слои, которые смешиваются и вызывают медленную прокрутку.

Все элементы смешались, поэтому я помещаю белый фон в UILabels (так же, как и в ячейке), и теперь UILabels в порядке (раньше у них был clearColor в качестве фона).

Я сделал то же самое с UITextViews, я выбрал белый фон, но они все еще отображаются на экране в виде слоев смешения (окрашены в красный цвет).

Каждая конфигурация UITextView выполняется в построителе интерфейса, я пробовал с каждой опцией, но они все еще отображаются красным цветом.

Что мне нужно делать с UITextViews, чтобы их слои не смешивались?

Спасибо заранее!

PD: Извините, но я не могу включить захват

Ответ 1

Ну, UITextView - это более продвинутое представление, которое прокручивается и поддерживает форматирование пользовательского текста, поэтому вы не сможете заставить его "не смешиваться". С другими представлениями вы должны установить флажок opaque, но я сомневаюсь, что это будет работать в этом случае.

Лучше всего использовать UILabel. Вы можете заменить его на UITextView, когда пользователю нужно отредактировать поле, но используя UILabel, в то время как прокрутка должна значительно улучшить скорость.

Ответ 2

Я тоже боролся с этой проблемой. У меня есть UITableView, который отлично прокручивается на iPhone, но просто дрожит, как сумасшедший на iPad. Я включил Color blending layers в Инструменты и, как вы сказали, кажется, что opaque = YES; и backgroundColor = [UIColor whiteColor]; не действуют.

Боб тоже прав, UILabels более эффективны. Однако моя реализация зависит от путей исключения, которые доступны только в UITextView из-за открытого текста TextKit. Я не мог просто использовать UILabel, поэтому из отчаяния я попробовал это, и красный на моем UITextViews исчез:

for (UIView *subview in textView.subviews) {
    subview.backgroundColor = theme.post.backgroundColor;
}

Я знаю, что это старый вопрос, но я потратил большую часть дня на отладку. Надеюсь, что другие люди считают это полезным.