В моем приложении у меня есть несколько небольших вложенных представлений . Когда пользователь касается подпредставления, я помещаю одно отдельное представление поверх затронутого подпредставления (того же размера), а затем анимирую это отдельное представление до полноэкранного размера.
Увеличенное представление нарисовано на заказ, что создает большой проблема с этим подходом. Если я создаю увеличивающееся представление в методе viewDidLoad
основного представления и устанавливаю его фрейм на полноэкранный размер, немедленно вызывается метод представления drawRect
, и вид правильно отображается в полный размер. Если я затем использую это представление в анимации, все будет работать так, как ожидалось.
Однако мне нужно, чтобы это увеличенное представление отличалось в зависимости от того, какое подпредставление было задействовано, поэтому мне нужно каждый раз заново создавать / перерисовывать его. Проблема в том, что когда я делаю это в ответ на событие касания, метод представления drawRect
не вызывается до тех пор, пока не начнется анимация, и тогда кадр представления будет маленьким, а не полноэкранным, и поскольку в результате все отображается неправильно.
В моем коде для события касания я явно устанавливаю кадр представления в полноэкранный режим и вызываю setNeedsDisplay
перед запуском анимации, но это не имеет никакого эффекта - drawRect
просто не вызывается, пока не начнется анимация.
Есть ли способ принудительно перерисовать, Из таблицы Есть ли способ сохранить его?