一种交叉结构或图案,通常用作支撑。
许多iOS开发都是模板代码。您有多少次编写代码来限制UITextField
中的文本长度?您还想再这样做多少次?我也是。
Lattice旨在将所有这些代码提取到一组可重复使用的类中,“行为”,这些行为可以组合起来,快速为各种UI类提供大量功能。
此外,继承链可能会变得脆弱。一旦您超过一或两个代,您总是会发现一些您最初没有考虑到的场景。您甚至可能会想,“如果Swift有多个继承的话……”。但这条路会导致疯狂,所以Lattice更倾向于组合而不是继承。您可以组合多个行为。这也意味着,如果您像添加一个10的MinLengthValidator
和一个5的MaxLengthValidator
这样做了,您可能会伤害自己。解决方案:不要这样做。
这里有好的部分。这些行为中的每一个都设计成可以轻松地插入Interface Builder中的普通对象。一旦连接了一两个IBOutlet
,您就完成了。这意味着您的视图控制器不会因为诸如验证和字段运算符之类的愚蠢内容而变得杂乱。
这是在Storyboards实现的。可能适用于常规的Xibs,但可能不适用。
非常感谢Krzysztof Zabłocki的理念。我将他的部分代码迁移到了Swift。
Lattice与CocoaPods兼容(Xcode项目的依赖管理器)。
您可以在CocoaPods 0.36中使用Swift项目中的嵌入式框架。以下命令可以安装它
$ gem install cocoapods
要在您的Xcode项目中使用Lattice,在Podfile
中指定它
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'Lattice', '~> 0.1'
然后,运行以下命令
$ pod install
在Interface Builder中,在对象库检查器(您可以按⌃⌥⌘3将其打开)中找到“对象”对象。将其拖放到场景中。您可以将它拖到文档大纲或视图控制器的顶部栏中,靠近第一个响应者图标。
在身份检查器(⌥⌘3)中,更改类字段为您正在使用的任何行为。
连接行为上的电源插座(在行为上右键点击,或使用连接检查器,⌥⌘6)。您需要连接[所有者]属性以及至少一个到您正在操作的视图。一些行为可能更复杂,可能需要额外的连接。请参考行为文档以获取更多详细信息。
就是这样!