This question already has answers here:
iOS: How does one animate to new autolayout constraint (height)
(6个答案)
5年前关闭。
我对AutoLayout有点陌生,我已经知道有关此autoLayout的大量问题和教程,但我没有找到解决方案,所以在此先感谢您的帮助。
我有什么要求
我必须制作UIView并在从屏幕底部按下带有动画的按钮后才能出现在屏幕上。(就像键盘)。我已经使用autoLayout在一个xib文件中制作了这个UIView。到目前为止,我已经这样做了。
在ViewDidLoad中:
在此视图中包含(滚动视图,然后是页面控制器,然后是取消按钮)
在ViewWillLayoutSubviews中:
现在正在制作动画。
在这里,我正在重新构图用于显示该动画的视图,但是在iPhone 6模拟器中未显示某些底部(该视图的取消按钮),但它完美显示了iPhone 5s设备。
问候
埃蒙
并在实施中:
另外这篇文章可能会有所帮助:
AutoLayout, Constraints and Animation
(6个答案)
5年前关闭。
我对AutoLayout有点陌生,我已经知道有关此autoLayout的大量问题和教程,但我没有找到解决方案,所以在此先感谢您的帮助。
我有什么要求
我必须制作UIView并在从屏幕底部按下带有动画的按钮后才能出现在屏幕上。(就像键盘)。我已经使用autoLayout在一个xib文件中制作了这个UIView。到目前为止,我已经这样做了。
在ViewDidLoad中:
//Loading custom UIView
containerView = [[SharingPickerView alloc] init];
[containerView loadingMenus:pickerData];
[self.view addSubview:containerView];
在此视图中包含(滚动视图,然后是页面控制器,然后是取消按钮)
在ViewWillLayoutSubviews中:
-(void)viewWillLayoutSubviews{
[super viewWillLayoutSubviews];
//Changing the frame of view to bottom side of the screen so that we can animate it later from bottom to top later.
containerView.frame = CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, containerView.frame.size.height);
[containerView setBackgroundColor:[[UIColor colorWithRed:231.0/255.0f green:231.0/255.0f blue:231.0/255.0f alpha:1.0f] colorWithAlphaComponent:0.3]];
}
现在正在制作动画。
-(void)sharePickerView{
[UIView animateWithDuration:1 animations:^(){
containerView.frame = CGRectMake(0,self.view.frame.size.height-containerView.frame.size.height, self.view.frame.size.width, containerView.frame.size.width);
} completion:^(BOOL isFinished){
NSLog(@"Animation Finish");
}];
}
在这里,我正在重新构图用于显示该动画的视图,但是在iPhone 6模拟器中未显示某些底部(该视图的取消按钮),但它完美显示了iPhone 5s设备。
问候
埃蒙
最佳答案
尝试使用尺寸限制作为出口。然后,您可以轻松更改这些约束的值。使用自动布局时,不建议真正修改帧。
声明属性:
@property (strong, nonatomic) IBOutlet NSLayoutConstraint *heightConstraint;
并在实施中:
heightConstraint = self.view.frame.size.height;
另外这篇文章可能会有所帮助:
AutoLayout, Constraints and Animation
10-08 05:51