iOS 中 UI 元素的边距和内边距

Posted

技术标签:

【中文标题】iOS 中 UI 元素的边距和内边距【英文标题】:Margin and padding for UI elements in iOS 【发布时间】:2011-08-18 17:25:17 【问题描述】:

到目前为止,我已经为 android 开发过。在那里,您可以为几乎每个 UI 元素设置 layoutMargin 和 padding(当您在 xml 文件中描述 UI 时)。

这在 ios 中的 UIViews 代码中是如何完成的(如果有通用命令)?

Tnx

【问题讨论】:

此问题应标记为 iphone 问题而不是 android 问题 我投票决定将此问题作为离题结束,因为太旧而无法迁移。这篇帖子是2011年的,现在是2015年了。iOS SDK变了。 【参考方案1】:

iOS 采用不同的方法来放置控件 - 没有布局引擎,您为所有控件指定绝对坐标和大小。有点像 Android 中的 AbsoluteLayout

所以边距和填充的概念并不真正适用 - 相邻控件之间的间隙完全取决于您,它们不是由系统计算的。尺寸相同。

这使得实现“使该控件尽可能大到其文本所需的大小”的场景变得更加困难。但是,您不会遇到恶意换行。

编辑:AbsoluteLayout 这些天已被弃用。

【讨论】:

【参考方案2】:

在 ios 中,您可以使用 Interface Builder 进行设计。您仍然可以使用 xml,但没有人使用它。

【讨论】:

【参考方案3】:

您可以在代码中或使用 Interface Builder(或 Xcode 4 中的 .xib 编辑器)来布置 UI 元素。您将为视图指定实际坐标,但您也可以为每个视图指定调整大小的行为。所以,你可以说一个特定的视图应该始终保持相同的大小并保持水平居中,或者它应该保持它的大小并保持左侧的边距,或者它应该拉伸以保持左右边距等。在 IB 中查找“autosizing”部分,或在代码中设置任意视图的autoresizingMask 属性。

【讨论】:

对于理解差异也很有帮助。

以上是关于iOS 中 UI 元素的边距和内边距的主要内容,如果未能解决你的问题,请参考以下文章

C# tablelayoutpanel 无法删除填充/边距

如何自定义 TextField 的边距、内边距和字体大小

jq获取元素的宽高(内边距和外边距)

外边距内边距

框模型中的外边距合并问题

框模型中的外边距合并问题