做一个楼盘动态的table view,我主要是建model和写tableview的delegate和datasource。
model
model用mantle来搭建,公司里的响应数据主要是JSON,用mantle可以把JSON解析成数组,并且可以解析成数组中的数组。
@implementation LJNewHouseSeenRecordResponseModel
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{
@"seenRecordData" : @"list"
};
}
+ (NSValueTransformer *)seenRecordDataJSONTransformer {
return [MTLJSONAdapter arrayTransformerWithModelClass:[LJNewHouseSeenRecordDataModel class]];
}
@end
上面的代码中,seenRecordData也是一个数组,用同样的方法做解析。
table view
网络请求
网络请求实际上是用的AFNetworking,公司在库的基础上做了一层封装。由于要求是先出3条动态,点击查看更多以后再出三条,所以在网络请求时要加上startIndex。
AutoLayout
AutoLayout是用masonry实现,用法很简单。
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.view.mas_top);
make.leading.equalTo(self.view.mas_leading);
make.bottom.equalTo(self.view.mas_bottom).with.offset(-49);
make.trailing.equalTo(self.view.mas_trailing);
}];
heightForRowAtIndexPath
由于设计中cell是不定高的,所以要在cell的model里写一个计算cell高度的方法。
网友评论