【问题标题】:Implementing constraints programmatically以编程方式实施约束
【发布时间】:2014-02-26 14:06:00
【问题描述】:

如何以编程方式在情节提要中实现以下约束?

【问题讨论】:

标签: ios user-interface storyboard


【解决方案1】:

有很多不同的方法可以做到这一点。

可能最简单的方法是使用 Visual Format Language https://developer.apple.com/library/ios/documentation/userexperience/conceptual/AutolayoutPG/VisualFormatLanguage/VisualFormatLanguage.html

使用它,您可以使用文本“绘制”布局,它会应用约束。

这样的……

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|-[tableView]-|"
options:0
metrics:nil
views:NSDictionaryOfVariableBindings(tableView)]];

您可以使用 VFL 做很多不同的事情。

最好的办法是查看文档或购买书籍。 (我会推荐 Ray Wenderlich 的 iOS7 by Tutorials)。我和他没有关系,但我买了这本书并从那里学习了 AutoLayout。

【讨论】:

  • 是的,虽然该网站只显示了我认为如何使用 IB 布置约束?
  • 我尝试使用上面的代码并收到以下错误:reason: 'Unable to parse constraint format: tableView is not a key in the views dictionary. |-[tableView]-| 如何将 tableView 添加到视图字典。顺便说一句,tableView 在故事板中实现。
  • @Julia:啊,这有点棘手——在这种情况下,你实际上必须使用 ivar。我知道我不能很好地解释 ivars 与局部变量,尤其是 500 个字符,所以我只会给你 tl;dr:使用 _tableView 作为你的变量名(所以整个事情将是 [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|-[_tableView]-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_tableView)]]; )。
  • @GeneralMike 感谢您清理它:D 是的,在这种情况下使用 _tableView。 RE屏幕截图,它并没有真正显示任何东西。这就是阅读和学习发挥作用的地方。获取我提供的信息以及教程和书籍,您将能够自己制作它们。 “教人钓鱼……”等等。我的一个喜欢只会设置水平约束。 (你也需要垂直的)。此外,它使用标准间隙设置到左右边缘的超级视图的约束。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-11
  • 2018-11-25
  • 2021-08-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多