Здесь у меня есть свой подход, который я узнал незадолго до ответа Конейбира.Я просто делю на подклассы классы TTTableMoreButton и TTTableMoreButtonCell и в методе «- (void) layoutSubviews» я обнаруживаю, что появляется кнопка «Загрузить еще», и она должна начать загружать больше данных, если это еще не делается.
Я не уверен, какой подход (coneybeaare или мой) является лучшим, и я с нетерпением жду комментариев о нем.
AutoMoreTableItem.h
@interface AutoMoreTableItem : TTTableMoreButton {
}
@end
AutoMoreTableItem.m
#import "AutoMoreTableItem.h"
@implementation AutoMoreTableItem
@end
AutoMoreTableItemCell.h
@interface AutoMoreTableItemCell : TTTableMoreButtonCell {
}
@end
AutoMoreTableItemCell.m
#import "AutoMoreTableItemCell.h"
#import "AutoMoreTableItem.h"
@implementation AutoMoreTableItemCell
- (void)setObject:(id)object {
if (_item != object) {
[super setObject:object];
AutoMoreTableItem* item = object;
self.animating = item.isLoading;
self.textLabel.textColor = TTSTYLEVAR(moreLinkTextColor);
self.selectionStyle = TTSTYLEVAR(tableSelectionStyle);
self.accessoryType = UITableViewCellAccessoryNone;
}
}
- (void)layoutSubviews {
[super layoutSubviews];
AutoMoreTableItem* moreLink = self.object;
if(moreLink.isLoading ==YES) {
return;
}
if (moreLink.model) {
moreLink.isLoading = YES;
self.animating = YES;
[moreLink.model load:TTURLRequestCachePolicyDefault more:YES];
}
}
@end
И, конечно, в реализации источника данных:
- (Class)tableView:(UITableView*)tableView cellClassForObject:(id) object {
if([object isKindOfClass:[AutoMoreTableItem class]]){
return [AutoMoreTableItemCell class];
} else {
return [super tableView:tableView cellClassForObject:object];
}
}