Как заставить представление отображать себя?

В моем приложении у меня есть несколько небольших вложенных представлений . Когда пользователь касается подпредставления, я помещаю одно отдельное представление поверх затронутого подпредставления (того же размера), а затем анимирую это отдельное представление до полноэкранного размера.

Увеличенное представление нарисовано на заказ, что создает большой проблема с этим подходом. Если я создаю увеличивающееся представление в методе viewDidLoad основного представления и устанавливаю его фрейм на полноэкранный размер, немедленно вызывается метод представления drawRect , и вид правильно отображается в полный размер. Если я затем использую это представление в анимации, все будет работать так, как ожидалось.

Однако мне нужно, чтобы это увеличенное представление отличалось в зависимости от того, какое подпредставление было задействовано, поэтому мне нужно каждый раз заново создавать / перерисовывать его. Проблема в том, что когда я делаю это в ответ на событие касания, метод представления drawRect не вызывается до тех пор, пока не начнется анимация, и тогда кадр представления будет маленьким, а не полноэкранным, и поскольку в результате все отображается неправильно.

В моем коде для события касания я явно устанавливаю кадр представления в полноэкранный режим и вызываю setNeedsDisplay перед запуском анимации, но это не имеет никакого эффекта - drawRect просто не вызывается, пока не начнется анимация.

Есть ли способ принудительно перерисовать, Из таблицы Есть ли способ сохранить его?

8
задан Yang 23 March 2011 в 16:49
поделиться