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