UIScrollView contentOffset перескакивает после анимации - в версии 3.0 beta 5

У меня есть UIScrollView с несколькими UITextFields. Когда пользователь редактирует текстовое поле, оно прокручивается так, что UITextField находится по центру. Проблема, с которой я столкнулся, заключается в том, что UIScrollView прокручивается до нужного места, но на последнем кадре анимации он перескакивает на 300 300. Он отлично работает в версии 2.2.1, но не в версии 3.0 beta 5. Он всегда подскакивает ровно до 300 300. Странно то, что когда я вызываю метод returnScrollAfterEdit, который перемещает представление прокрутки точно так же, он работает нормально. Есть идеи, что могло вызвать это?

- (void)scrollViewToCenterOfScreen:(UIView *)field withKeyboard:(bool)withKeyboard {
    CGFloat viewCenterY = field.center.y;  
    CGRect applicationFrame = [[UIScreen mainScreen] applicationFrame];
    CGFloat availableHeight = applicationFrame.size.height - 215;

    CGFloat y = viewCenterY - availableHeight / 2.0;

    NSLog([NSString stringWithFormat:@"w:%f h%f availH:%f y:%f x:%f", applicationFrame.size.width, applicationFrame.size.height, availableHeight, y, self.contentOffset.x]);

    if (y 

person respectTheCode    schedule 21.05.2009    source источник
comment
Исправлено в релизной версии 3.0.   -  person respectTheCode    schedule 21.07.2009


Ответы (2)


Я не уверен, что это именно то, что вы ищете, но у меня тоже были сумасшедшие проблемы с UITextView. Если бы я выделил в представлении какой-либо текст, он прокручивался бы до нижней части фрейма. Я исправил это, отключив scrollEnabled перед добавлением текста в UITextView.

Таким образом, код будет выглядеть примерно так:

[textarea setText:@""]; //blank out the text to scroll back to the top
[textarea setScrollEnabled:NO]; //disable to avoid scrolling
[textarea setText:@"new text here"]; 
[textarea setScrollEnabled:YES];
[textarea resignFirstResponder]; //to drop annoying blue

Надеюсь, это поможет.

person Kevin Beck    schedule 18.08.2009
comment
В итоге я изменил графический интерфейс, чтобы избежать этого, но я попробую в следующий раз, когда столкнусь с этим. - person respectTheCode; 25.08.2009

Исправлено в релизной версии 3.0

person respectTheCode    schedule 13.04.2011