Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何添加视图(以及收缩或拉伸其他)iOS_Ios_Objective C_View_Storyboard_Uistoryboard - Fatal编程技术网

如何添加视图(以及收缩或拉伸其他)iOS

如何添加视图(以及收缩或拉伸其他)iOS,ios,objective-c,view,storyboard,uistoryboard,Ios,Objective C,View,Storyboard,Uistoryboard,我有一个视图应该弹出,并从底部设置动画 此视图(如下面的屏幕截图所示)应隐藏并弹出。(屏幕5->6隐藏)(屏幕6->5弹出) 您可以看到UIWebView(带有文本的视图是UIWebView)需要适当地收缩和拉伸 我想知道做这件事的正确方法是什么。我是否应该创建320pt x 0pt视图(因为它没有高度,所以会被隐藏),然后设置其“高度”属性的动画,并更新高度约束?或者我应该采取不同的方法 我使用故事板系统 非常感谢您的时间和回答请尝试以下代码: [UIView animateWithDur

我有一个视图应该弹出,并从底部设置动画

此视图(如下面的屏幕截图所示)应隐藏并弹出。(屏幕5->6隐藏)(屏幕6->5弹出)

您可以看到UIWebView(带有文本的视图是UIWebView)需要适当地收缩和拉伸

我想知道做这件事的正确方法是什么。我是否应该创建320pt x 0pt视图(因为它没有高度,所以会被隐藏),然后设置其“高度”属性的动画,并更新高度约束?或者我应该采取不同的方法

我使用故事板系统

非常感谢您的时间和回答

请尝试以下代码:

[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;
}