【发布时间】:2014-10-10 19:14:01
【问题描述】:
我正在使用 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 上。
我无法理解如何使用自动布局功能,并且我已经阅读了教程,大多数人说,将元素拖到视图中,单击 Pin 图标,设置约束并完成它。
但是我添加的元素最终看起来不像我想要的那样。
例如,假设我想创建一个包含滚动视图的视图,并在其中显示标签和文本字段,就好像它是一个表单一样,通过拖放元素想象我最终会得到这样的结果:
我希望的布局是每个标签和文本字段与左右相距 11 dps,无论方向如何,也需要彼此相距 11 dps,初始标签为 50 dps除了滚动视图的顶部。
每个元素都应该始终保持相同的高度(20 dps),但它们的宽度必须根据左右约束而变化。
我的布局定义到此结束。
现在让我们开始定义左右约束以及高度。我所做的是选择所有标签和文本字段,我固定左右并将它们的高度设置为相同的值:
但我得到的是这样的:
生成的布局看起来与我想要的完全不同,每个元素的宽度都设置为相同的大小,正确的值没有意义,我说的是 11 dps,但我得到的值是 187、173 和 228。
即使我设置了顶部和底部约束,正确的约束看起来还是一样的:
我该如何解决这个问题?我已经多次删除并从头开始,但我无法理解我做错了什么。有些技术语言有时会给我带来挑战(我不是以英语为母语的人),所以我不知道我是否有不同的解释。
【问题讨论】:
-
仅供参考,
UIScrollViews 的自动布局是一个特别棘手的领域。总的来说,这让我非常沮丧,以至于我最终改用了静态UITableViews。 rob 下面的答案是一个很好的通用答案,但我真的发现,滚动视图约束错误经常是一个巨大的痛苦。我要么按照我的意愿展示我的观点,让 Xcode 为我设置我的约束(建议的约束),要么使用静态UITableViews。
标签: ios xcode xamarin.ios xamarin interface-builder