如何添加视图(以及收缩或拉伸其他)iOS
我有一个视图应该弹出,并从底部设置动画 此视图(如下面的屏幕截图所示)应隐藏并弹出。(屏幕5->6隐藏)(屏幕6->5弹出) 您可以看到UIWebView(带有文本的视图是UIWebView)需要适当地收缩和拉伸 我想知道做这件事的正确方法是什么。我是否应该创建320pt x 0pt视图(因为它没有高度,所以会被隐藏),然后设置其“高度”属性的动画,并更新高度约束?或者我应该采取不同的方法 我使用故事板系统 非常感谢您的时间和回答请尝试以下代码:如何添加视图(以及收缩或拉伸其他)iOS,ios,objective-c,view,storyboard,uistoryboard,Ios,Objective C,View,Storyboard,Uistoryboard,我有一个视图应该弹出,并从底部设置动画 此视图(如下面的屏幕截图所示)应隐藏并弹出。(屏幕5->6隐藏)(屏幕6->5弹出) 您可以看到UIWebView(带有文本的视图是UIWebView)需要适当地收缩和拉伸 我想知道做这件事的正确方法是什么。我是否应该创建320pt x 0pt视图(因为它没有高度,所以会被隐藏),然后设置其“高度”属性的动画,并更新高度约束?或者我应该采取不同的方法 我使用故事板系统 非常感谢您的时间和回答请尝试以下代码: [UIView animateWithDur
[UIView animateWithDuration:duration
delay:delay
options:UIViewAnimationOptionCurveEaseInOut
animations:^(void) {
viewToChange.frame = CGRectMake(x, y, width, height);
}
completion:NULL];
您将需要一个用于viewToChange的插座。1)像view 5那样设计屏幕
2) 使用弹出视图的“打开”高度设置约束。上面视图的底部需要连接到弹出视图的顶部,显然,顶部视图不应该有固定的高度
3) 为高度约束创建一个出口
4) 在windowDidLoad中,通过从约束获取“打开的”高度来存储该高度(这样您就不必在代码中单独维护它)。例如(其中_popLight是CGFloat成员变量):
5) 需要时设置约束的动画。大概是这样的:
- (IBAction)togglePopup:(id)sender {
[UIView animateWithDuration:5
animations:^{
_addBannerDistanceFromBottomConstraint.constant = (_popupState) ? 0 : _popUpHeight;
}];
_popupState = !_popupState;
}
设置高度动画是一个很好的解决方案。@tarmes 1。故事板中的设计视图(如第5屏)2。使视图高度为0pt。3.此视图的动画高度属性?当然-但放弃自动布局是一个巨大的代价,因为它已经成熟。你的意思是“viewDidLoad”?NSAnimationContext仅在Mac OS上可用。。。我想。哦,我只是不假思索地从我当前的项目中抓取了一大块代码。我已经更新了ANWSERT还有一个问题:如果设置约束动画,则需要在动画末尾添加“[self.view layoutifneed];”。我不知道为什么。
- (IBAction)togglePopup:(id)sender {
[UIView animateWithDuration:5
animations:^{
_addBannerDistanceFromBottomConstraint.constant = (_popupState) ? 0 : _popUpHeight;
}];
_popupState = !_popupState;
}