Советы по реализации пользовательского интерфейса UITextView на iPhone? - PullRequest
3 голосов
/ 23 марта 2010

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

  1. UITextView не может этого достичь.Весь текст должен быть одного цвета.
  2. Использование CoreGraphics для рисования текста не позволяет выделять текст.
  3. Использование тегов UIWebView, DIV и PRE нельзя установить на contentEditable в Mobile Safari.
  4. В настоящее время играет с использованием закадрового TEXTAREA и экранного DIV для отображения визуализированного текста.Это работает довольно хорошо, за исключением поддержки всех этих в то же время кажется невозможным: щелчок, чтобы напечатать, щелчок, чтобы переместить курсор, щелчок и удержание, выбор / копирование / вставка.

У кого-нибудь есть какие-либо советы по этому вопросу?

Я пытался найти какую-либо существующую ранее библиотеку, которая бы выполнила это хорошим способом, но не повезло.Я открыт для любых идей!

Ответы [ 3 ]

3 голосов
/ 08 апреля 2010

Ну, просто вытаскиваю идею из моей ... скажем, шляпы.

Не могли бы вы поместить прозрачное поле UIText поверх вида, который рисует текст? Если фон был четким, а цвет текста - ясным, пользователь не мог его воспринимать, но он все равно должен реагировать на все команды. Когда пользователь вводит и редактирует текст, вы можете нарисовать результаты в представлении внизу.

Я думаю, что выбор будет работать без каких-либо изменений. Когда пользователь выбирает чистый текст, это должно создать иллюзию автоматического выбора нарисованного текста.

0 голосов
/ 13 апреля 2010

Вот идея.Я понятия не имею, сработает ли это.

Если вы используете только цвета, а не стили, UIWebView с цветным текстом может размещать текст точно так же, как UITextView.Вы можете поместить UITextView с невидимыми чернилами (текст и фон полностью прозрачны) поверх UIWebView и зеркально отразить содержимое цветами в html.Я предполагаю, что вы можете сделать прокрутку с помощью JavaScript вместе с цветным макетом.

0 голосов
/ 09 апреля 2010
...