Если ваш вопрос не является ни Autolayout связаны, или другие, перечисленные здесь, есть и еще одна возможная проблема, оказалась моей проблемой. Я одновременно выполняю переход UIView (переходFromView: toView :) на представления, которые занимают одно и то же пространство экрана (разные супервизоры, не связанные, кроме позиционирования в супервизии встроенного контроллера представлений).
Мой код выглядит следующим образом:
[UIView transitionFromView:self.someView
toView:self.someOtherView
duration:0.6f
options:UIViewAnimationOptionTransitionCrossDissolve | UIViewAnimationOptionShowHideTransitionViews
completion:NULL];
[UIView animateWithDuration:0.3
delay:0.0 options:UIViewAnimationOptionCurveEaseOut
animations:^{
[self.someThirdView setFrame:someFrame]; //not working
[self.someThirdView setAlpha:1.0f]; //working
} completion:nil];
Рамка изменилась, но выскочил на новый кадр, а не анимировать. Я предполагаю, что это внутренняя проблема iOS. Как только я удалил вызов «transitionFromView: ...», анимация кадра работала нормально.
Моим решением на данный момент было перемещение второй анимации в блок завершения переходаFromView. Это не идеально, поскольку две анимации должны были выстроиться в линию, но на данный момент это приемлемое решение.
У меня такая же проблема. – chenyi1976
Я предполагаю раскадровки или xib правильно? – Logan
Если это так, перейдите на ваш xib или раскадровку этого вида и снимите флажок «useAutolayout». У меня есть картины где-то, я должен ее найти. – Logan