2015-05-02 4 views
1

Я пытаюсь автоматически прокручивать мою TextView сверху до видовых нагрузок, так что вы не можете видеть, что это на самом деле движется вверх ...быстры UITextView setContentOffset работает на didappear, а не на willappear

я» m пытается сделать это с

var zeroOffset = CGPoint.zeroPoint 
    textSpace.setContentOffset(zeroOffset, animated: false) 

где textSpace - это мой UITextView.

Когда я размещаю этот код внутри viewDidAppear, он работает, но проблема в том, что, очевидно, вы можете видеть на секунду прокрутку текста, и он вообще не работает, когда я помещаю его внутрь viewWillAppear (viewDidLoad ни, помощи). Я полагаю, что это имеет какое-то отношение к CGPoint, которому нужно, чтобы представление было там, прежде чем вычислять фактическую точку, но я не уверен, есть ли решение для этого? спасибо

+0

Как насчет того, чтобы поместить его в 'viewDidLayoutSubviews'? – vacawama

+0

Он работает! большое спасибо – m4tt

ответ

4

В жизненном цикле viewController, между viewWillAppear и viewDidAppear, есть звонок viewDidLayoutSubviews. Он вызывается после того, как были отображены подсмотры. В этот момент у вас будет все, что вам нужно, чтобы ваш звонок работал, но он все равно будет перед представлением. Поэтому переопределите viewWillLayoutSubviews и разместите свой звонок там.

+0

awesome. спасибо, что отлично подходит для установки смещений scrollview до их появления :) – datayeah