У мене є UITextView з текстом. У iOS 6 все було добре, але тепер із iOS 7 він залишає порожній простір зверху, а потім розміщує текст нижче середини перегляду тексту.
Я не встановив жодного contentOffSet. Будь ласка, допоможіть!
У мене є UITextView з текстом. У iOS 6 все було добре, але тепер із iOS 7 він залишає порожній простір зверху, а потім розміщує текст нижче середини перегляду тексту.
Я не встановив жодного contentOffSet. Будь ласка, допоможіть!
Відповіді:
Перегляд тексту - це вид прокрутки. Контролери перегляду додадуть зміщення вмісту автоматично для прокрутки подань, оскільки передбачається, що вони захочуть прокручуватися вгору за панеллю навігації та рядком стану.
Щоб запобігти цьому, встановіть наступне властивість на контролері подання, що містить текстовий вигляд:
self.automaticallyAdjustsScrollViewInsets = NO
Поточна відповідь, яку дав IronManGill, не є вдалим рішенням, оскільки вона не ґрунтується на розумінні того, чому проблема відбувається в першу чергу.
Відповідь jrturton також не найясніший спосіб її вирішити. Вам не потрібно переосмислювати. Не ускладнювати!
Все, що вам потрібно, це встановити наступне:
self.automaticallyAdjustsScrollViewInsets = NO;
у методі viewDidLoad.
Перевірте документи: https://developer.apple.com/documentation/uikit/uiviewcontroller/1621372-automaticallyadjustsscrollviewin
automaticallyAdjustsScrollViewInsets
застаріло. З iOS11 використовуйтеcontentInsetAdjustmentBehavior
У програмі інтерфейсу,
Це працювало для мене
textView.textContainerInset = UIEdgeInsetsZero;
textView.textContainer.lineFragmentPadding = 0;
Перейти до Interface Builder
:
view controller
що містить своєtext view
Adjusts Scroll View Insets
власностіМені справді цікаво, чи це реальна особливість ... Цей 64-бальний автоматичний вклад додається лише тоді, коли UIScrollView
або UITextView
як більша глибина всіх підвидів подання контролера перегляду. Наприклад, якщо ви додасте подання позаду (тут я говорю про z-буфер, а не про змащування), вигляд прокрутки, цей 64-кратний вклад не додається автоматично.
Наприклад, цей додає вставку:
У цьому випадку вставка не додається:
Мені це дійсно здається дивним ... Чому ОС би дивилася на глибину погляду, щоб вирішити, чи слід це розширювати?
Швидко (Xcode 6)
self.automaticallyAdjustsScrollViewInsets = false
viewDidLoad
Контролері перегляду з поданням тексту.
automaticallyAdjustsScrollViewInsets
застаріло. З iOS11 користуйтесяcontentInsetAdjustmentBehavior
Я вирішив цю проблему, встановивши зміщення змісту на негативне значення. Ось код Свіфта.
yourTextView.setContentOffset(CGPoint(x: 0, y: -150), animated: true)
[self.textView setContentOffset:CGPointMake(0.f, -self.topLayoutGuide.length) animated:NO];
Що ви повинні розуміти, це те, що це стосується навігаційної панелі:
Рішення для Swift 4:
textView.textContainerInset = UIEdgeInsets.zero
Це непрофесійне рішення, я впевнений ... Але просто поставлення порожньої мітки за текстовим переглядом вирішує проблему.