实现updateContent
- (void)updateContent
{
self.makeLabel.text = self.make;
self.modelLabel.text = self.model;
self.colorNameLabel.text = self.colorName;
self.descriptionLabel.text = self.carDescription;
[self setNeedsLayout];
}
实现keyPathsTriggerUpdate
+ (NSArray *)keyPathsToTriggerUpdate
{
return @[@"make", @"colorName", @"model", @"carDescription"];
}
就是这样。当其中一个keypath更改时,会自动调用setNeedsUpdate。
如果您不是UIView或UIViewController,您必须在初始化期间自己调用startObservingForUpdates以添加观察者。
在https://github.com/hoteltonight/HTKit中查看演示
HTCarDetailsViewV1, V2和V3展示了使用这些工具对简单动态UI组件进行增量改进。
这些改进的顺序曾在NSMeetup April 2013讨论,幻灯片在此:http://d.pr/f/jczG
推荐的安装方法是cocoapods。将以下行添加到您的Podfile中
pod 'HTGraphics'
SFObservers是cocoapods用户的依赖项。
SFObservers是一个依赖项目,用于自动删除KVO观察者。
向作者@jakejennings和@jonsibs发送推文,并查看HotelTonight的技术博客:http://engineering.hoteltonight.com
还可以查看HotelTonight的其他iOS开源项目