2009-10-12 3 views
0

Кажется, что это должно быть просто, но я не могу понять, как это сделать.Как заставить UITextView прокручивать по горизонтали, как пользовательский тип?

Я создал UITextView в построителе интерфейса. Он не сидит в ячейке таблицы или ничего подобного.

Что бы я хотел сделать, это прокрутить UITextView слева, когда пользователь набрал свой путь до нужного края.

В настоящий момент это просто перенос слов, я понимаю, что перенос слов имеет смысл в большинстве ситуаций, но мне нужно его прокручивать. То, что мне нужно, - это то же поведение, что и вертикальное.

Я попытался настроить размер содержимого UITextView в viewDidLoad, а также в viewDidAppear, и это не имеет никакого значения.

Я также играл с настройками вставки в IB, но это не влияет на прокручиваемый размер, просто ГДЕ он отображается.

Есть ли у кого-нибудь идеи?

ответ

1

Хорошо, это не похоже, что это можно сделать именно так, как я хотел, но я придумал взломать меня туда.

Допустим, я хочу прокручивать ширину 600 и видимую ширину 250.

Первого шаг должен сделать UITextView широким, как область, которую вы хотите быть прокручивать. Итак, что вы бы поместили в contentSize, в этом случае 600.

Тогда правая вставка устанавливается на разницу между фактической шириной и шириной, которую вы хотели. В этом случае 350.

Таким образом, курсор сдерживается до необходимой ширины, но есть текст, видимый справа от нужной ширины, в конце концов, UITextView IS 600 пикселей в ширину.

Теперь вот, где находится действительно хакерский бит, не читайте, если вы чувствительны или слабый желудок.

Получить изображение пользовательского интерфейса вправо, где должен заканчиваться UITextView. Вставьте его в NIB как представление UIImage и верните его на свое место, убедившись, что он находится поверх UITextView.

Когда отображается представление, вырез находится поверх UITextView и скрывает переполнение текста.

Я не горжусь, но это работает.

2

Если вам нужна только одна строка текста, которая прокручивается, вам, вероятно, лучше будет служить UITextField. UITextView s предназначены для многострочного ввода текста, поэтому слово wrap является значением по умолчанию. Вы не можете, насколько мне известно, переопределить это поведение.

+0

На самом деле, мне нужно несколько строк. – oldbeamer

+0

Вы можете попробовать установить/переопределить свойство contentSize, но если это не сработает, вам, вероятно, не повезло. – Alex

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