Подтвердить что ты не робот

Как установить маржу в UITextView?

В настоящее время я разрабатываю простое текстовое приложение для iPad. Я хочу установить левое/правое поле, как прикрепленное изображение. Просто добавление UITextView в другой UIView с большей шириной не будет работать, потому что индикатор прокрутки не будет правильно расположен.

Вместо UIView я добавил UITextView в UIScrollView, и он работает почти отлично. Но иногда они показывают странное поведение, а UITextViewDelegate не работает с моим UIViewController.

Есть ли способ установить поля слева/справа только с помощью UITextView? Спасибо.

alt text

4b9b3361

Ответ 1

Вы можете использовать свойство textContainerInset

Следуя примеру Джорджа Грина:

myTextView.textContainerInset = UIEdgeInsetsMake(0.0f, 10.0f, 0.0f, 10.0f);

Ответ 2

UITextView является подклассом UIScrollView. Я не пробовал, но вы можете попробовать что-то вроде:

myTextView.contentInset = UIEdgeInsetsMake(0.0f, 10.0f, 0.0f, 10.0f);

UIEdgeInsetsMake() выглядит следующим образом:

UIEdgeInsets UIEdgeInsetsMake (
   CGFloat top,
   CGFloat left,
   CGFloat bottom,
   CGFloat right
);

Итак, вы должны иметь возможность вставлять свой контент textView.

Надеюсь, это поможет, дайте мне знать, если это сработает!:)

Ответ 3

Я хотел сделать то же самое, но textview.contentInset не работал.

Я поместил UITextView с узкой шириной на UIView, а затем переместил индикатор scrollview textview в правую сторону, поэтому я получил то, что мне очень понравилось.

textView.clipsToBounds = NO; textView.scrollIndicatorInsets = UIEdgeInsetsMake (0.0f, 0.0f, 0.0f, -20.0f);

Этот ответ может помочь. Есть ли способ показать индикатор прокрутки UITextView вне UITextView?

Ответ 4

Вы можете установить правильное значение вставки скроллера UITextView для отрицательного значения и отключить параметр подзаголовка клипа для достижения требуемого. Никакой другой прокрутки не требуется. Select textview on storyboard first

В коде это будет

textView.clipsToBounds = NO;
textView.scrollIndicatorInsets = UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, -50.0f);