У мене є 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 viewAdjusts 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
Це непрофесійне рішення, я впевнений ... Але просто поставлення порожньої мітки за текстовим переглядом вирішує проблему.