每个设备的默认 iOS 控件高度和宽度列表?

Posted

技术标签:

【中文标题】每个设备的默认 iOS 控件高度和宽度列表?【英文标题】:List of default iOS control heights and widths for each device? 【发布时间】:2017-03-05 20:53:41 【问题描述】:

例如:在故事板中,标签默认高度为 44。单独的导航栏默认宽度为 375,高度为 44。然而,高度实际上在设备上呈现为 64。这些是无论设备如何,值都相同?例如,即使在 iPad Pro 上,导航栏仍然是 64 吗?任何给定控件是否有特定的纵横比来确定所有设备上的高度/宽度?​​

这种信息在手动设置某些东西(例如启动屏幕故事板)的约束时非常有用。

我的实际问题是:我在哪里可以找到对 ios 设备可用控件的默认高度/宽度或纵横比值的有用参考。

【问题讨论】:

导航栏总是44。64之和是导航栏(44)+状态栏(20)。是的,即使是 ipad pro 也一样 是的,@TungFam。正在寻找关于所有 UI 控件的此类信息。 【参考方案1】:

在 iOS 中只有少数东西具有 Intrinsic Size。

UILabel 由文本字符串、字体、字体大小和粗细决定。

UIImageView 具有与图像大小相对应的固有内容大小。

控件可能包含赋予它们大小的文本或图像。内在大小由文本和图像决定。例如 UIButton 的大小,它由图像、背景图像或文本或 UIsegmentedControl 决定,我认为它由段数和文本大小决定。

UIStatusbar、UINavigationBar、UITabbar 等由系统修复。但我不想依赖可能改变的固定值。这是一些常见的系统定义元素大小的链接。 http://www.idev101.com/code/User_Interface/sizes.html

您也可以在 Apple 设计指南中找到此内容。

条形图具有固定的系统大小。其他一切都是由内容决定的。希望这可以帮助。

【讨论】:

我明白,如果我改变字体,添加图像等,当然高度和宽度会改变。但是,如果我将项目拖到情节提要中,并且不对它们进行任何更改,则会出现默认大小。而且,系统设置的项目仍然具有默认大小,如导航栏 (44) 和状态栏 (20) 所示。我确信我可以通过实验确定这些事情。我只是希望提供参考,也许是已经做过实验的人;-) 那么您想知道带有标准字体大小的文本“label”的 uilabel 的默认大小吗? 当然!将标签拖到情节提要上,并检查 Size Inspector:width = 42,height = 21。当然,宽度基于“Label”文本内容。我会更关心 21 的默认高度。假设我不需要更改 17 号的系统字体,我可以使用该高度来计算我的屏幕排列。如果它在更大的设备上没有改变,这可能有助于我确定我需要如何设置约束。 你为什么要那样做。为什么不检查负载或只检查自动布局?假设苹果在下一个版本中更改了默认字体大小,而您的所有计算都是错误的。如果字体超长,你想让字体大小适合怎么办?我的观点是你不能依靠这样的测量来布置你的用户界面。您可以在布局子视图或 viewDidLayoutSubviews 上获取您的 ui 元素,但不依赖于预先测量的大小来布局它。您还必须事先使用适当的文本测量所有用户界面。听起来效率很低。 您不能为启动屏幕故事板编写代码,所以我不知道有什么好处。您需要使用弹簧和支柱或 AutoLayout 来定位和调整视图的大小。【参考方案2】:

我在哪里可以找到对 iOS 设备可用控件的默认高度/宽度或纵横比值的有用参考。

关于 iOS 用户界面应该是什么样子的最有用的参考是iOS Human Interface Guidelines。虽然它没有您要查找的默认尺寸列表,但确实有一个 Resources 部分,其中包含用于 Photoshop 或 Sketch 的“智能对象”包,您可以使用使用标准尺寸的控件快速模拟 UI 设计,而不必过多担心具体尺寸。

【讨论】:

以上是关于每个设备的默认 iOS 控件高度和宽度列表?的主要内容,如果未能解决你的问题,请参考以下文章

当我们使用不同尺寸和类型的屏幕时,如何在 iOS 中设置 UI 控件的宽度和高度约束?

如何获取iOS设备屏幕的高度和宽度[重复]

winform中如何让label的宽度固定而长度随着文本的变化而变化???

iOS 根据屏幕宽度, 高度判断手机设备

设置控件高度,宽度等

前端页面高度和宽度自适应怎么做?