来自Android开发我试图模仿我在过去的应用程序中制作的一些布局,但现在在iPhone和iPad上。我在Android中经常使用的东西是布局权重。我已经完成了大量的搜索,阅读书籍和博客,我认为在iOS 6中可以实现这样的功能,但我找不到任何东西。我也试过在iOS上观看大量有关自动布局的教程,但我真的没有找到任何可以完成任务的东西。这让我疯了。那么...是否有相当于Android布局权重的iOS?
答案 0 :(得分:2)
答案 1 :(得分:1)
“布局权重”是iOS 6的自动布局框架可以执行的操作的子集。不幸的是,在nib文件中设置约束是XCode 4中的一个难点。我建议只有在你有权访问XCode 5 dev预览时才能在nib中设置约束。
但是,您提到的场景可以在没有自动布局的情况下完成:
如果我想要两个视图,顶视图将是“设置”高度,该怎么办? (200)然后我想要另一种观点来占据其余部分 可用空间。我可以在界面构建器中执行此操作吗?
是的,你可以。只需转到尺寸检查器并将顶视图的弹簧和支柱设置为
和底部的
(注意红色十字架。)
<强>更新强>
好的,如果你真的想使用autolayout:
UIView *topView = ...;
UIView *bottomView = ...;
NSDictionary *bindings = NSDictionaryOfVariableBindings(topView, bottomView);
[self.view addConstraints:
[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[topView(200)][bottomView]|"
options:(NSLayoutFormatAlignAllLeft | NSLayoutFormatAlignAllRight)
metrics:nil
views:bindings]];
答案 2 :(得分:0)
您可以使用iOS中的自动布局系统模拟此行为。但请注意,这需要iOS 6.0+。这种情况长期存在的原因是它在iOS平台上没有意义(所有设备上的所有比率都相同)。使用NSLayoutConstraint
,您可以尝试将视图的宽度/高度限制为其超级视图的特定百分比。不过,我自己从未尝试过这样做。然而,学习自动布局需要一点时间投入(没有极端,可能是一两个小时)。我建议各种WWDC视频。
我不知道它是否会像我描述的那样完全有效,但是如果可能的话,您无疑会在自定义视图中使用NSLayoutConstraint
或覆盖layoutSubviews
来执行每当视图调整大小或布局无效时手动布局逻辑。此方法适用于所有iOS版本,但需要编写更多代码。