我必須創建一個社交應用程序,目前在用戶的新聞源中只顯示20個項目。一旦他們打的底部有一個「加載更多的按鈕,然後,這將延長穩定到下一個20個項目。iOS - 如何創建一個永不結束的滾動新聞Feed
它非常手動,而不是非常流暢,有沒有辦法來自動完成這個?
特徵是類似的Facebook和Twitter的東西,所以我知道這是可能的,但我的谷歌搜索只是採取我,因爲我不知道這個功能使用正確的術語。
任何幫助將是太棒了!
我必須創建一個社交應用程序,目前在用戶的新聞源中只顯示20個項目。一旦他們打的底部有一個「加載更多的按鈕,然後,這將延長穩定到下一個20個項目。iOS - 如何創建一個永不結束的滾動新聞Feed
它非常手動,而不是非常流暢,有沒有辦法來自動完成這個?
特徵是類似的Facebook和Twitter的東西,所以我知道這是可能的,但我的谷歌搜索只是採取我,因爲我不知道這個功能使用正確的術語。
任何幫助將是太棒了!
一旦用戶接近列表的末尾,您就可以開始提取下一個項目。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSInteger maximumNumberOfRows = [tableView numberOfRowsInSection:indexPath.section];
if (indexPath.row >= maximumNumberOfRows - kReloadOffset) {
[self fetchNextItemsFromWebserviceWithOffset:maximumNumberOfRows];
}
在fetchNextItemsFromWebserviceWithOffset
可以獲取更多新聞和更新[self.tableView reloadData]
您的表視圖。
使用表格視圖,只加載20或任何你需要的數量當你到滾動結束加載a nother 2O。它非常基本和簡單。您的單元格會一次又一次地被重複使用,並且它永遠不會結束,直到數據可用。
您可以在靠近時使用此方法獲取數據,也可以使用Mark Gibson的代碼。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat offsetY = scrollView.contentOffset.y;
CGFloat contentHeight = scrollView.contentSize.height;
if (offsetY > contentHeight - scrollView.frame.size.height - screensizehere*2)
{
if (!isCalling)
{
isCalling = YES;// when you response data change this bool to NO.
[self getdatainbg];//call your service.
}
}
}
也許這會幫助你。
讓你的UIViewController類爲UIScrollViewDelegate
@interface Yourclass : UIViewController<UIScrollViewDelegate>
/*Your getters & setters, method declarations*/
@end
#pragma mark UIScrollViewDelegate & refresh for auto scroll
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
/*Auto scroll Code.. Raja implemented..*/
if (([scrollView contentOffset].y + scrollView.frame.size.height) == [scrollView contentSize].height) {
[self performSelector:@selector(refreshPage) withObject:nil afterDelay:0.0];
return;
}
}
聽我使用indexPath.section代替indexPath.row將相同的代碼應用? – Amraj
取決於您的數據模型,如果您可以通過當前部分確定用戶接近所顯示項目的末尾。 – Cornelius
你也可以更新'-tableView:numberOfRowsInSection:'在飛行中(所以使用不能滾動過去沒有被加載的單元的末端,但?) –