RT:
对于SnapKit 中示例代码,使用我的封装,更简单,如下:
let box = UIView()
superview.addSubview(box)
box.pinEdge(UIEdgeInsetsMake(20,20,20,20))
不过我跟SnapKit 的定位不一样, 它尝试重新定义一种声明约束的方式,并适应所有场景.
而我目的是,简化 80% 的写法. 其他的使用构建原生的 NSLayoutConstraint
的方式
下面是一些用法举例:
let box = UIView()
box.pinCenterX() // 在父 View 水平居中
box.pinCenterY() // 在父 View 中垂直居中
let box2 = UIView()
box2.pinCenterXToSibling(box1) // 与 box 水平居中对齐
按我平常手写约束的经验来说, 简化 80% 的手写约束,是不为过的
另: 如果某一类的约束,使用比较多,也可以快速的添加一个 convenience 方法.
PS: 在写这些封装方法时,我发现起名字,其实是个大问题. 不想太啰嗦,又想直观.
部分参考了 SnapKit, PureLayout的写法
So, how do you think?
源代码:
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.