我正在使用Cocoanetic's pull-to-reload,但有一個轉折:我想UITableView能夠拉起,因爲它是,加載更多的數據。添加依賴於scrollView.contentSize的子視圖的正確位置是什麼?
我自定義了這些類,並設法調整所有功能以支持此功能。基本上,我得到的結果是我的代碼中創建和添加額外視圖的地方。
我第一次嘗試將它添加在viewDidLoad中Cocoanetic的類(一UITableViewController
)的:在這一點上
- (void)viewDidLoad
{
[super viewDidLoad];
refreshHeaderView = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f - self.view.bounds.size.height, 320.0f, self.view.bounds.size.height)];
refreshFooterView = [[EGORefreshTableFooterView alloc] initWithFrame:CGRectMake(0.0f, 0.0f + self.tableView.contentSize.height, 320.0f, 20.0f)];
[self.tableView addSubview:refreshHeaderView];
[self.tableView addSubview:refreshFooterView];
self.tableView.showsVerticalScrollIndicator = YES;
}
這不起作用,因爲self.tableView.contentSize.height
是零,因爲表沒有加載它的數據尚未。
不用擔心,我想,並試圖將其添加在子類的UITableViewController我做的viewDidLoad中:
- (void)viewDidLoad
{
[super viewDidLoad];
// stuff
self.model = [ListingModel listingModelWithURL:@"avalidurl" delegate:self];
refreshFooterView = [[EGORefreshTableFooterView alloc] initWithFrame:CGRectMake(0.0f, 0.0f + self.tableView.contentSize.height, 320.0f, 20.0f)];
[self.tableView addSubview:refreshFooterView];
}
注意我第一次設置的模式,但也沒有工作,爲同樣的道理。我認爲桌子還沒有鋪好。在無奈我給我的類從tableView:cellForRowAtIndexPath:
稱爲BOOL
財產和addFooter
方法(BOOL
,以確保它僅被調用一次),這顯然是一條正確的路™相去甚遠
那麼,什麼會,鑑於這種情況,是正確的方式?
那麼我怎麼會這樣,記住我使用UITableViewController?我從一個筆尖加載UITableView,因此我額外的問題:) – Zsub 2011-05-10 10:59:51