Tag: 版式

iOS中具有不同屏幕尺寸的自动布局

自动版面很棒。 只需声明约束,然后根据其父级的bounds更改相应地调整视图的大小。 但是有时候看起来不太好,因为我们对填充,宽度,高度甚至字体大小都有固定的值。 这可以使用Size Class某种程度上解决。 size class的想法是,我们有许多约束集,并且基于设备特征,我们启用了其中一些约束。 在Storyboard中这样做比较方便(尽管很难推理),但是如果我们在代码中做(我偏爱的方式),那么很多代码。 很多代码意味着很多错误。 如果您看一下iOSRes,我们会看到16:9 ( height:width ) iPhone SE(320 x 568):1.775 iPhone 6(375 x 667):1.778 iPhone 6+(414 x 736):1.778 它们大多数具有相同的比率。 因此,我们可以采用一种简单的方法,即根据比率缩放元素。 考虑到设计师通常为iPhone 6 size设计的事实,我们可以以此为基础。 在这种方法中,内容将根据其比例放大或缩小。 您可能会争辩说,更大的手机的想法是显示更多,而不是更大地显示相同的内容。 您可能是对的,在这种情况下,您需要创建不同的约束和不同的UI。 但是,如果您想使用简单的解决方案,这就是其中之一。 这是我在进行Windows Phone development时使用的技术,但它也适用于许多平台 设备类{ //以磅为单位的基本宽度,使用iPhone 6 静态让步基数:CGFloat = 375静态变量比:CGFloat { 返回UIScreen.main.bounds.width / base } } 我们可以有一个称为adjusted的计算属性,它可以根据比率调整大小 扩展程序CGFloat {变量已调整:CGFloat { 返回自身* Device.ratio […]

自动版面设计原理

什么是自动版式? 自动版式等于位置和大小。 在近代,我们始终在iOS编程中使用第三个库,例如SnapKit和Monsary。 我没有提到为什么编程界面比Xib和Storyboard更好? 作为初级的iOS开发人员,xib和storyboard是开始编码的最佳方法,因为它是如此简单。但是几年后,如果您想超越此范围,则应该通过AutoLayout而不是使用第三个库来构建自己的界面,然后提高自己的技能。 您应该牢记此规则。 “自动布局”是声明性的—您向系统添加规则以表示界面布局。 运行时系统代表您实施这些规则。 “自动布局”可最大程度地减少计算-您指定布局,而不是点和像素。 自动版式设计是间接的,但它也非常灵活-视图需要较少的更新来更改窗口的几何形状,并且它们更容易分解为可维护的版式组件。 “自动布局”由几何驱动-它的基本语言术语是自然的几何属性,例如边缘,中心和大小。 “自动布局”着重于关系-使用几何等式和不等式将视图布局彼此关联,从绝对项转换为相对项。 自动版式允许甚至鼓励冲突的规则-优先规则是自动版式的重要组成部分。 它们使您能够添加低优先级回退条件和高优先级边界限制以构建复杂的接口。 “自动布局”表示自然的内容—内部视图内容驱动大小调整和对齐,使内容在布局中发挥关键作用。 Auto Layout寻求最佳解决方案-根据您提供的规则以及内容和容器的大小可变,它可以确定最佳的布局。 Auto Layout是分布式的-它自然分解的布局支持干净的实现,而组件之间的依赖性很小。 SnapKit的功能是什么? 首先,它使用闭包在界面中进行约束 然后在ConstraintsMake类中调用此函数 它使用DSL来构建您的布局代码……。