2010-01-19 2 views
1

Я использую подкласс ABTableViewCell от Atebits для оптимизации прокрутки для довольно больших потенциальных источников данных в зависимости от того, что возвращает мой поиск. (В любом случае, хотя, я настоятельно рекомендовал бы подкласс даже простейших tableviews, они прокручивать как масло!)Изменить цвет фона подстроки рисованной NSString?

У меня есть NSString нарисованный вид:

[nameLabel drawInRect:nameRect withFont:nameLabelFont lineBreakMode:UILineBreakModeWordWrap]; 

Я думал, что это будет что искомое слово (которое называется «CONTAINS searchText») будет выделено. Это так же просто, как изменение цвета фона под подстрокой nameLabel?

правок:

NSAttributedString, кажется, что я ищу, но оказывается, что не существует для iPhone.

Из дальнейшего чтения, похоже, что HTML и UIWebView - это способ пойти на это ... но это кажется ужасно дорогим. Это действительно решение?

ответ

0
+0

Кроме того, NSAttributedString недоступен по телефону: http://stackoverflow.com/questions/729135/why-no-nsattributedstring-on-the-iphone –

+0

О, ну, я не понял, что он недоступен на iPhone OS пока. –

0

Дикая идея - это ваш текст одной строкой? Если это так, вы можете вычислить ширину «Name», а затем ширину «CONTAINS», чтобы вы знали, где именно она нарисована на экране. Как только вы просто опустите полупрозрачный цветной UIView поверх текста.

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

+0

Хотелось бы, чтобы все было так просто. Мой текст очень изменчив по размеру. Из-за этого мне приходится вычислять высоту каждой ячейки. –

+0

Hm. Я не понимаю, что еще вы можете сделать, помимо ручного словаря: вы можете выполнить двоичный поиск, сравнивая длину пикселя подстроки с границами поля для различной длины символа подстроки. После этого вы получите массив однострочных строк текста, а затем сможете вернуться к моему первому предложенному решению. Это реальная боль для реализации, но это даст вам преимущество перед всеми остальными. Во всяком случае, я подожду до события Apple через несколько дней - если ОС 4.0 выйдет в ближайшее время, у них может быть решение вашей проблемы. – DenNukem

+0

И как я и ожидал: NSAttributedString добавляется в SDK 3.2, объявленный сегодня. – DenNukem

1

Эй, проверьте TTStyledLabel - он может делать то, что вы хотите.

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