做一個(gè)樓盤動(dòng)態(tài)的table view陈莽,我主要是建model和寫tableview的delegate和datasource。
model
model用mantle來搭建押桃,公司里的響應(yīng)數(shù)據(jù)主要是JSON况毅,用mantle可以把JSON解析成數(shù)組,并且可以解析成數(shù)組中的數(shù)組异吻。
@implementation LJNewHouseSeenRecordResponseModel
+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{
@"seenRecordData" : @"list"
};
}
+ (NSValueTransformer *)seenRecordDataJSONTransformer {
return [MTLJSONAdapter arrayTransformerWithModelClass:[LJNewHouseSeenRecordDataModel class]];
}
@end
上面的代碼中裹赴,seenRecordData也是一個(gè)數(shù)組,用同樣的方法做解析诀浪。
table view
網(wǎng)絡(luò)請(qǐng)求
網(wǎng)絡(luò)請(qǐng)求實(shí)際上是用的AFNetworking棋返,公司在庫(kù)的基礎(chǔ)上做了一層封裝。由于要求是先出3條動(dòng)態(tài)雷猪,點(diǎn)擊查看更多以后再出三條睛竣,所以在網(wǎng)絡(luò)請(qǐng)求時(shí)要加上startIndex。
AutoLayout
AutoLayout是用masonry實(shí)現(xiàn)求摇,用法很簡(jiǎn)單射沟。
[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
由于設(shè)計(jì)中cell是不定高的,所以要在cell的model里寫一個(gè)計(jì)算cell高度的方法与境。