Вставка содержимого UITextView

Я столкнулся с чем-то немного странным с contentInsets

У меня есть UITextView в моей раскадровке с содержаниемInset из 50 слева, так как я пытаюсь добавить некоторые дополнения к моему uitextview

Однако в нижней части uitextview отображается полоса прокрутки, как показано ниже в этом тесте: введите описание изображения здесь

У меня создалось впечатление, что contentInset подавляет uitextview, не вызывая эту горизонтальную полосу прокрутки, поэтому как я могу удалить необходимость в горизонтальной полосе прокрутки и сделать все – вставку И весь текст в uitextview – видимый без необходимости этого полоса прокрутки.

NB: Я не прошу о предотвращении прокрутки по горизонтали или не отображать полосу прокрутки (таким образом, вырезание текста)

Большое спасибо!

Для atomk (UITextView называется ss)

NSLog(@"Content Size Before %f",self.ss.contentSize.width); Logs: 280 CGSize size=self.ss.contentSize; size.width=size.width-50; [self.ss setContentSize:size]; NSLog(@"Content Size After %f",self.ss.contentSize.width); Logs: 230 

Нет видимой разницы между представлением с добавленным кодом, чем до его добавления, поэтому что-то не так! (Благодаря)

UPDATE: это решение устарело, как на iOS 7.

См. Этот ответ ниже . В iOS 7.0 было textContainerInset свойство UITextView :

 textView.textContainerInset = UIEdgeInsetsMake(0, 50, 0, 0); 

Решение Pre-iOS 7:

У меня создалось впечатление, что contentInset выдавливает uitextview, не вызывая эту горизонтальную полосу прокрутки …

Я боюсь, что это не так, как contentInset работает с UITextView . См . Документацию Apple для contentInset где указано:

Расстояние, на которое отображается содержимое, из вложенного вида прокрутки … Используйте это свойство для добавления в область прокрутки вокруг содержимого.

contentInset добавляется вокруг содержимого.


Вы можете изменить contentSize в viewDidLayoutSubviews используя код, который вы viewDidLayoutSubviews выше:

 - (void)viewDidLayoutSubviews { self.textView.contentInset = UIEdgeInsetsMake(0, 50, 0, 0); NSLog(@"Content Size Before %f",self.textView.contentSize.width); //Logs: 280 CGSize size=self.textView.contentSize; size.width=size.width-50; [self.textView setContentSize:size]; NSLog(@"Content Size After %f",self.textView.contentSize.width); //Logs: 230 } 

Однако это приводит к отключению текста с правой стороны:

UITextView обрезается с правой стороны


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

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

UITextView (рамка в красном цвете) внутри контейнера UIView :

UITextView внутри контейнера UIView

Если ваш UITextView имеет фон, см.

  • Как установить вкладку содержимого UITextView как приложение Notes
  • Материал, который вы узнали из обратного инжиниринга Notes.app (см. Раздел «iPadding»)

Надеюсь, что это поможет, и если кто-нибудь сможет найти лучшее решение, я бы хотел услышать об этом!

В iOS 7 UITextView основан на TextKit и имеет новое свойство textContainerInset . Он ведет себя так, как вы ожидали:

 UITextView *textView = ...; // Left inset of 50 points textView.textContainerInset = UIEdgeInsetsMake(0.0, 50.0, 0.0, 0.0); 
  • С помощью нескольких UITableViews в одном представлении UIScrollview, как загружать только данные ячеек для видимых ячеек
  • uibutton с png заставляет uiscrollview задерживаться
  • iOS: метод делегата ScrollView внутри CollectionView не вызывает
  • UIControll в UIScrollView не получает события касания
  • Показать смешанные слои показывает красный UIImage, но у него нет альфа-канала
  • Эффект фонового изображения статического подобия
  • UIButton останавливает прокрутку UIScrollView в Swift
  • UITableView / UIScrollView, как автоматически узнать, когда ContentSize изменяется?
  • 2 UITableView в UIScrollView
  • UIScrollView загадочно меняет размер кадра и содержимого
  • Как расширить UICollectionView contentSize при разрешении пейджинга?
  • Interesting Posts

    iOS Swift ReloadData в UITableView не обновляет UICollectionView внутри UITableViewCell

    Как вы распространяете бета-приложения iOS в своей команде, не используя тестовый полет?

    textFieldShouldReturn: не вызывается, а textFieldDidEndEditing: вызывается?

    Предупреждение об ограничениях в консоли, я не могу понять

    Видимый тупик

    Как играть музыку в фоновом режиме iphone sdk

    SpriteKit и прокручиваемый список

    Как правильно объявить массив пользовательских объектов в Swift?

    Не удалось выполнить запрос (код ошибки 7) через openActiveSessionWithReadPermissions с пользователями тестирования Facebook

    Есть ли возможность напрямую использовать C ++ с API-интерфейсом Metal API

    UIViews заканчиваются под панелью вкладок

    Как я могу локализовать папку изображений для iOS?

    Прокрутка iOS до поля ввода вне поля

    Как изменить размер текста (шрифта) в соответствии с UISegment UISegmentedControl?

    UITableView многоразовые пользовательские ячейки отображают неправильный контент в подзаголовках

    Давайте будем гением компьютера.