Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.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 更改UIView高度和子视图y位置[Swift]_Ios_Xcode_Swift - Fatal编程技术网

Ios 更改UIView高度和子视图y位置[Swift]

Ios 更改UIView高度和子视图y位置[Swift],ios,xcode,swift,Ios,Xcode,Swift,我使用自动布局来水平和垂直居中我的主UIView。我要做的是,当高度为182的子视图从当前偏移量推到y偏移量为0时,将高度从363设置为182 用稍微不那么混乱的术语: 目标是使子视图朝下,在父视图将其高度更改为子视图的高度时,在父视图顶部的内容上滑动 先改变一个,然后再改变另一个,这两种方式似乎都会破坏它。我最后的选择是在子视图下有一个视图,它与控制器的背景颜色相匹配,以隐藏父视图不调整大小的事实,但我使用的是一个角半径,这样会有点难看 我对整个自动布局有些陌生,所以我希望有更好的解决方案 非

我使用自动布局来水平和垂直居中我的主UIView。我要做的是,当高度为182的子视图从当前偏移量推到y偏移量为0时,将高度从363设置为182

用稍微不那么混乱的术语: 目标是使子视图朝下,在父视图将其高度更改为子视图的高度时,在父视图顶部的内容上滑动

先改变一个,然后再改变另一个,这两种方式似乎都会破坏它。我最后的选择是在子视图下有一个视图,它与控制器的背景颜色相匹配,以隐藏父视图不调整大小的事实,但我使用的是一个角半径,这样会有点难看

我对整个自动布局有些陌生,所以我希望有更好的解决方案

非常感谢您的帮助


谢谢:)

假设父视图上有高度约束,子视图上有顶部约束

parentHeightConstraint.constant = 182
childTopConstraint.constant = 0
UIView.animateWithDuration(0.3) {
    parentView.window?.layoutIfNeeded()
}

啊哈,所以我的问题是在我应该更改约束的时候尝试更改视图?谢谢您的快速响应。是的,您需要修改约束,而不是直接设置帧。如果您在故事板中创建了约束,请注意,您可以创建连接到需要修改的约束的插座。好的。有道理。最后一个问题,父空间缩小后是否会重新居中,或者当前顶部空间是否会保持原样?我希望它保持原样,只是没有那么高,因为这样做的目的是在键盘出现时看起来很漂亮。再次感谢。如果约束告诉它是这样,它将居中。如果您将约束常量重置回它们开始的位置,视图将返回到其原始位置。工作完美。我还向动画添加了一个-=91的上边距约束,以在调整大小期间/之后保持顶部间距位置。再次感谢,你帮了我大忙:)