我正在使用 Xamarin Studio 进行 iOS 开发,我刚刚开始使用 Xcode Interface Builder,它让我很头疼。我的 Xcode 版本是 5.1.1(5B1008),我在 Xamarin Studio 5.5 build 227 和 Xamarin.iOS 8.2.0.193 Starter Edition 上。
我无法理解如何使用自动布局功能,我已经阅读了教程,大多数人都说,将元素拖到 View 中,单击 Pin 图标,设置约束并完成它。
但是我添加的元素并没有像我希望的那样结束。
例如,假设我想创建一个带有 ScrollView 的 View ,它将在其中显示标签和文本字段,就像它是一个表单一样,通过拖放元素想象我最终得到这样的东西:
我想要的布局是每个标签和文本字段的左右间隔为 11 dps,无论方向如何,每个标签和文本字段之间的间隔也为 11 dps,初始标签为 50 dps除了 ScrollView 的顶部。
每个元素的高度应始终相同 (20 dps),但它们的宽度必须根据左右约束发生变化。
我的布局定义到此结束。
现在让我们开始定义左右约束以及高度。我所做的是选择所有标签和文本字段,我固定左右两侧并将它们的高度设置为相同的值:
但是我得到的是这样的:
生成的布局看起来与我想要的完全不同,每个元素的宽度都设置为相同的大小,正确的值没有意义,我说是 11 dps,但我得到的值是 187、173 和 228。
即使我设置了顶部和底部约束,正确的约束看起来还是一样的:
我该如何解决这个问题?我已经删除并从头开始了好几次,但我无法理解我做错了什么。一些技术语言有时会给我带来挑战(我不是以英语为母语的人)所以我不知道我的解释是否有所不同。
最佳答案
您需要让 Interface Builder 更新这些元素的框架。所有那些黄线/数字都是当前不满足的约束 - 元素的框架与约束要求不匹配。
但是,在要求 IB 更新框架之前,通常最好确保先设置好所有约束。
在这里,我已经设置了你描述的所有约束,但我还没有要求 IB 更新框架:
在这里,我要求 IB 更新顶级 View 中所有 View 的框架:
如果我选择 subview ,我可以看到约束现在显示为蓝色,表示它们已满足:
关于ios - 如何在 Xcode Interface Builder 中设置约束,以便 View 相应地改变它们的宽度或高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26306481/