2013-08-16 1 views
12

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

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

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

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

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

Заранее благодарен!

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

ответ

7

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

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

+0

Вот что я сделал, я заменил каждый UITextView на UILabel, и теперь свитки отлично работают :) Спасибо! – saky

+0

Но UILabel не поддерживает события касания URL. –

17

Я тоже боролся с этой проблемой. У меня есть 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; 
} 

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

+0

Где вы это положили? –

+1

Это удалил смешанный слой из моего текстового поля. Я добавил этот цикл в свой инициализатор. –

 Смежные вопросы

  • Нет связанных вопросов^_^