Я работаю над анимацией uiview (родительский вид с именем «popupVw»), который содержит 11 подзонов (7 кнопок, 2 метки, 2 изображения). Первоначально размер рама:Изменение фреймворка uiview с анимацией, не меняя рамки вложенных объектов автоматически
CGRect Frame = CGRectMake(10, 10 ,320, 0);
& новый размер кадра:
CGRect newFrame = CGRectMake(10, 10 ,320, 300);
[UIView animateWithDuration:0.5
animations:^{popupVw.frame = newFrame;}
completion:^(BOOL finished){
// do stuff here after animation finished
}];
Поэтому в основном я меняюсь высоту обзора от 0 до 300. &, затем от 300 до 0 раз. для достижения анимации show hide.
Рассматривайте это как всплывающее окно в середине экрана, отображаемое от 0 до 300 высоты. Это всплывающее окно содержит subviews & кнопку закрытия в верхнем правом углу. Нажимая эту кнопку закрытия, всплывающее окно снова уменьшается до высоты от 300 до 0. Родительское всплывающее представление анимируется правильно. Но субвизоры видны до того, как высота увеличивается до максимума. & видно до тех пор, пока высота родительского вида не вернется к 0. Таким образом, в основном только родительский вид анимации & не является внутренним.
Анимация работает правильно на родительском представлении, но субвью не анимируется с родительским представлением. В результате, когда я изменяю высоту uiview от 300 до 0, тогда все подзоны все еще видны & только высота родительского uiview становится 0.
Нужно ли мне анимацию для них отдельно? если да, то как я могу это сделать для изменения высоты? Или есть ли другой подход, который я могу использовать для достижения того же результата?
Я пробовал авторезистирующую маску. но это не работает для меня:
pointerImgVw.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin ;
Ниже приведены srceengrabs задачи:
Поперечное кнопку в верхнем правом углу подтаблицы оживлённой всплывающего окна. То, что я хочу, - это крестовая кнопка не должна быть вне анимационного представления. Например, во втором скриншоте должна быть видна только кнопка с половинной поперечностью. Внешняя часть не должна быть видимой.
Попробуйте UIViewAutoresizingFlexibleHeight вместо этого. –
@verbumdei Я попытался использовать UIViewAutoresizingFlexibleHeight, но он просто увеличивает высоту subview с размером родительского представления. Я имею в виду .если высота parentView возрастает от 0 до 300, то также возрастает высота subview. – stackNeverFlow
Как вы хотите, чтобы подвид рассматривался? Или просто установите clipToBounds? –