Tag: Linearlayout

SnapKitten —用于线性布局的Swift库

长期以来,我是一名Android开发人员。 我喜欢android XML布局编辑器,它很容易实现我想要的结果。 而且我可以在编辑器中轻松预览。 从android到iOS,都有一个等效的编辑器-XIB或情节提要及其布局系统-约束系统。 我个人不喜欢故事板,要在故事板上定义所有内容并不容易。 对于团队发展,有时会在编辑中产生冲突。 因此,我选择SnapKit作为我的布局创建工具。 SnapKit是最好的iOS库之一,我喜欢它的语法,但是,iOS约束系统本身仍然不容易完全理解。 我花了几周的时间研究约束系统,但其结果仍不总是我的期望。 这就是为什么我写了一个库来处理我通常会重复使用的某些情况的原因。 在snapKitten中,引用了Android的线性布局。 它完全基于SnapKit和Constraint系统。 目的是处理iOS布局设计的一些线性情况。 SnapKitten的目标 1.基于约束系统 2.解决线性布局,例如android中的LinearLayout 3.易于使用,如SnapKit 编码示例 考虑一下,我们需要一个用户配置文件布局,其中图像在左侧,用户名在右侧。 让userProfile:UIView = Kitten.horizo​​ntal()。from() .add(imageView).size(40) .add(label).itemOffset(10) 。建立() 这是怎么回事? 1.定义方向(水平/垂直) 2.在from()方法中选择userProfile的父UIView 3.小猫添加一个UIImageView和UILabel 4.在每个添加视图操作之后,您将定义线性布局的一些属性。 5. build()返回连接所有子视图的父UIView 小猫实际上是做什么的? 1.在调用build()方法之前,它什么都不做。 它没有添加任何视图,并且您的视图没有属性更改。 2.当调用build方法时,它开始在子代及其父容器之间建立约束。 3.包括位置对齐,大小,内容压缩,内容拥抱属性。 4.位置和大小与任何帧原点/大小无关。 纯约束。 更复杂的例子 考虑一下,我们需要一个视图控制器,它的用户配置文件顶部对齐,菜单的三个图标底部对齐,其余中间部分是scrollview。 让userProfile:UIView = Kitten.horizo​​ntal()。from()。defaultAlignment(.start) .add(iv).size(40) .add(lblA).itemOffset(10) 。建立() userProfile.backgroundColor = UIColor.orange 让bottomMenu = Kitten.horizo​​ntal()。from() .weightMode(true) […]