使用.xib文件时,更改模拟指标会对您的代码/应用产生什么影响?或者它只是为了您作为预览工具的好处?
答案 0 :(得分:14)
实际上,更改模拟指标确实会以非常偷偷摸摸的方式影响您的应用程序。我发现在使用SwipeView库时我的幻灯片都受到了更改模拟公制尺寸的影响。
在更改该大小的引擎下,将nib文件的rect值设置为:
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
该值将是笔尖发射的大小。如果我们尝试在视图中测量元素,那么会出现加载和视图,我们将有错误的信息:
// viewDidLoad
(lldb) po splashImageView
<UIImageView: 0x79913eb0; frame = (0 0; 600 600); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x799ca310>>
// viewWillAppear
(lldb) po splashImageView
<UIImageView: 0x79913eb0; frame = (0 0; 600 600); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x799ca310>>
布局子视图完成后,我们确实有适当的大小,但就SwipeView而言,它已经太晚了,它已经计算了所有内容的位置。
// viewDidLayoutSubviews
(lldb) po splashImageView
<UIImageView: 0x79913eb0; frame = (0 0; 768 1024); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x799ca310>>
如果有人能提供更多我真正喜欢的信息。
答案 1 :(得分:13)
模拟指标主要是帮助您布局界面的设计辅助工具。它们对.xib * [1]几乎没有直接影响。它们非常有用,因为您可以模拟像导航控制器中嵌入的视图控制器之类的东西,因为导航栏占用了一些空间,所以可以减少使用空间。如果你正在布局一个只用于横向的viewController,它们也非常方便。在它们推出时,它是检查界面在较短的iPhone 4显示屏和较高的iPhone 5显示屏上的外观的唯一方法* [2]。
我经常将尺寸设置为 iPhone 4英寸,因为:1)我发现在方形viewController工作分散注意力,2)它占用更少的屏幕空间允许我可以在笔记本电脑显示屏上看到更多我的故事板。将size类更改为 wC hR 的方法要小得多,因为后者实际上会影响对不同大小的设备使用哪些约束。
[1] 大小和方向指标会影响viewController的大小,因为它存储在.xib
或.storyboard
文件中。如果将设置保留为 Inferred ,Xcode将使用600 x 600
作为viewController的大小。通常,这没有区别,因为viewController在加载时将适当地调整大小。
[2]当时引入了 Simulated Metrics ,这就是 介绍了在各种尺寸设备上检查设计的其他更好方法。
答案 2 :(得分:5)
观看WWDC 2015 Session 407 Implementing UI Designs in Interface Builder,他们谈到了模拟指标
<强>推断强>
现在,他们都在推断。基本上推断 意味着使用我周围的环境。我们知道我们在标签栏内 控制器,我们知道我们在导航控制器内部所以界面 建造者知道要显示哪个栏。
模拟指标
所有这些指标都不会影响您在运行时的实际应用程序 有一个例外,那就是大小模拟指标。
尺寸模拟指标实际上会改变视图的大小 控制器,但通常你会把它放到一个视图控制器 层次结构将调整它的大小,但如果你是这样,它也会有所帮助 例如,创建自由格式视图控制器,并希望设置您的 自己的大小。