【问题标题】:Creating a UI programmatically in iOS and autolayout?在 iOS 和自动布局中以编程方式创建 UI?
【发布时间】:2014-04-08 07:22:55
【问题描述】:

我是 iOS 编程新手,我一直在完全以编程方式为应用构建 UI。 (我删除了情节提要文件+从plist文件中删除了一个属性,并且纯粹是通过代码来完成的。)我想确定的是,在iOS7中,自动布局是否仍然自动发生?还是不是这样?

其次,我怎样才能完全以编程方式管理它? AKA,我有一个很好的肖像模式界面。但是,当我转到横向时,很明显 UI 没有正确调整。这让我觉得自动布局没有打开或者没有使用适当的约束。

是否建议我实际使用界面生成器?

谢谢。

【问题讨论】:

标签: ios objective-c uiview autolayout


【解决方案1】:

我想确定的是,在 iOS7 中,自动布局是否仍会自动发生?还是不是这样?

有两种使用自动布局的方法:您可以在情节提要中设置它,也可以通过编程方式定义它。如果您不这样做,则不会应用自动布局。

我怎样才能完全以编程方式管理它?

正如上面的 cmets 所建议的,请先查看Apple Docs。 github 上还有一些框架可以让事情变得更简单,例如 Masonry,但无论如何您都需要了解自动布局的工作原理。

是否建议我实际使用界面生成器?

这可能是一个高度自以为是的问题。这完全取决于您是否喜欢使用 Interface Builder。 IB 可以直观地设置约束,但这仍然不是一项简单的任务,尤其是当您的 UI 很复杂时。如果您以编程方式执行此操作,您将拥有更多代码(以及丑陋的代码)。 IB 也不会修复约束之间的“冲突”,但它会更容易测试你的约束。但是,如果您更喜欢以可视化方式而不是编程方式来定义事物,那么 IB 是一个不错的选择。

【讨论】:

  • 另外,我还有一个简单的问题。自动布局是否旨在解决与以下相关的缩放问题:不同的屏幕尺寸、纵向与横向、系统设置中的字体大小?还要别的吗?谢谢。
  • 当然,您提到的所有内容都是通过自动布局解决的。顺便说一句,旋转,屏幕大小等,也可以通过自动调整掩码(加上一些视图包装)来解决。自动布局的真正新颖之处在于它比自动调整蒙版更强大和更具表现力,一旦你习惯了它,你就可以希望以一种简单的方式构建更高级的 UI。因此,自动布局的另一大好处是它允许您对 UI 进行更精确的控制,轻松决定在“本地”级别“固定”哪些内容,以及应该调整哪些内容。希望这会有所帮助。
  • 谢谢,是的,它确实有很大帮助。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-13
  • 2013-11-16
相关资源
最近更新 更多