나는 coneybeare의 대답 바로 전에 나는 내 자신의 접근법을 발견했다. 나는 단순히 TTTableMoreButton과 TTTableMoreButtonCell 클래스를 하위 클래스로 분류하고 "- (void) layoutSubviews"메서드에서 "Load More"버튼이 나타나는지 감지하고 아직 수행하지 않은 경우 더 많은 데이터를로드하기 시작해야합니다.
어떤 접근법 (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];
}
}
난 그냥 발견하고 솔루션을 구현 사람이 원한다면 나는 그것을 공유 할 수 있습니다했습니다. –