HTUpdateAggregator 1.0.1

HTUpdateAggregator 1.0.1

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最新发布2014年12月

无人认领维护。



  • Jacob Jennings和Jon Sibley

HTUpdateAggregator改善了NSObject/UIView/UIViewController子类中的更新逻辑

  • 熟悉的模式:updateContent, setNeedsUpdate, 和 updateIfNeeded
    • 就像layoutSubviews, setNeedsLayout, 和 layoutIfNeeded一样
  • 使用属性的键值观察到来自动触发更新
    • 避免覆盖setter,可能破坏合成的行为和增加样板化代码
  • 聚合runloop中的更新调用
  • 集中的updateContent对于大多数情况可以提高可维护性

示例

实现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'

https://cocoapods.org.cn

SFObservers是cocoapods用户的依赖项。

讨论

SFObservers是一个依赖项目,用于自动删除KVO观察者。

欢迎贡献!

使用了吗?喜欢/讨厌它?

向作者@jakejennings和@jonsibs发送推文,并查看HotelTonight的技术博客:http://engineering.hoteltonight.com

还可以查看HotelTonight的其他iOS开源项目