自iOS7以来,我一直在寻找标准的GUI设计模式。
在我之前的两个应用中,我取消选中了autolayout并使用了自动调整功能。
通常看起来像这样
主视图在SIZE INSPECTOR中如下所示。
目前我正在制作两个xib, iPhone4的 iphone 5 并使用UIViewAutoresizingFlexibleTopMargin& UIViewAutoresizingFlexibleLeftMargin以及iOS6 / 7 Delta中的-64。
对于内部/子视图,我通常在iOS6 / 7 Delta中保持UIViewAutoresizingFlexibleTopMargin和UIViewAutoresizingFlexibleLeftMargin和-64在iOS6中正常工作。
它给出了几乎完美的结果,但有时我需要从xib(0,0)开始查看,但有时从(64,0)开始显示视图看起来像是在运行时从View的最上边框开始。
让我很难理解什么是设计XIB的标准方法,这样我们就可以在iPhone4和iPhone5以及两个平台上使用单个XIB。
由于
答案 0 :(得分:4)
就我个人而言,我发现将Interface Builder与AutoLayout一起使用并不是非常用户友好,而且很快就会变得混乱。
我更喜欢以编程方式执行所有AutoLayout操作。为了避免大量的样板,我使用了Masonry library这是非常了不起的。
答案 1 :(得分:0)
如苹果开发者官方网站所述,以下链接公开了使用可视化格式语言进行自动布局的指导原则,这是目前iOS开发人员采用的最佳实践。
答案 2 :(得分:0)
从头开始编写自动布局代码并不容易。有类似的选项可用于AutoLayout的东西。我们可以在PureLayout的帮助下以编程方式设置所有约束。 https://github.com/PureLayout/PureLayout
<强>安装:强>
将pod PureLayout
添加到您的Podfile。
pod 'PureLayout'
从终端运行pod install
,然后打开应用的.xcworkspace
文件以启动Xcode。
导入PureLayout.h
总标题。
在Podfile中使用use_frameworks!
Swift: import PureLayout
目标-C: #import <PureLayout/PureLayout.h>
(或已启用模块:@import PureLayout;
)
您的Podfile中没有use_frameworks!
Swift:将#import "PureLayout.h"
添加到您的桥接标题中。
目标C: #import "PureLayout.h"
你完成了!现在用PureLayout
答案 3 :(得分:0)
使用自动布局的最佳做法是练习很多,直到你熟练使用它:-(
然后您可以使用多种策略。
那个不会起作用并且会让你脱发的尝试是在代码中组合界面构建器和约束。不要这样做。
在你想出事情之后工作的第二个是在界面构建器中使用布局约束来做所有事情,设计和布局。请注意,布局约束可以是IBOutlets,并且您可以非常轻松地在代码中操作布局约束的常量。
第三个也适用于在代码中创建视图,包括布局约束。使用或编写一个可以更轻松地创建约束的库。