ios - 在代码中更改框架后自动布局重置 View

标签 ios objective-c interface-builder autolayout xcode6

我正在尝试更改代码中的一些框架,但我希望自动布局得到尊重。

我有这个层次结构

enter image description here

当我点击导航栏右上角的搜索按钮时,我希望绿色 View 上升 50 像素。它工作得很好,但 tableView 没有遵循自动布局,因为它的顶部绑定(bind)在绿色 View 上。

所以当我点击按钮时,导航栏和表格 View 之间有一个空白区域。

有什么想法可以使用自动布局解决这个问题吗?

最佳答案

当使用自动布局时,框架是基于约束的动态的。每次 View 布局时,它都会通过约束重新计算并更新 View 的框架。因此,您应该更改相应的约束,而不是更改绿色 View 的框架。

在代码调用 topSpace 中创建约束引用,这是绿色 View 和顶部布局指南之间的约束,并在用户点击按钮时将其常量设置为 -50。

关于ios - 在代码中更改框架后自动布局重置 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26281246/

相关文章:

ios - 如何在 Codemagic 中指定目标平台 ios 版本号

ios - 自动布局特征集合更改时的通知(不是方法)?

objective-c - iOS - QLPreviewController 不会重新加载

iphone - NSDate 字符串未显示在 TableViewCell 中

uiviewcontroller - 如何在界面构建器中创建容器/ subview Controller 关系

ios - 如何设置UIButton触摸坐标

ios - 简单 View Controller 切换原因 : Attempt to present while a presentation is in progress

objective-c - 在嵌套的 NSDictionary 中查找最小值和最大值

ios - 如何让按钮打开/关闭 UITableViewController 的一部分?

iphone - 当我更改字体时 UIButton 会调整大小吗?