2012-02-08 29 views
0

我需要先加載15條記錄,然後當用戶單擊顯示更多行的單元格時,我需要在我的tableview中加載下20條或可用記錄。我正在查看SO中發佈的這個問題。在表格視圖中加載更多行

此功能也可以在appStore中看到。加載下一個記錄數的位置。

這裏的解決方案是;

`- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return self.numberOfRowsVisible; 
} 

-(void)moreButtonClickAction { 
    if (self.numberOfRowsVisible < self.maxNumberOfRows) 
     self.numberOfRowsVisible = MIN(self.numberOfRowsVisible + 10, self.maxRows); 
    [self.tableView reloadData]; 
} 

我初始化和硬編碼在viewDidLoad中的numberOfRowsVisible價值爲15

self.numberOfRowsVisible=[NSNumber numberWithInt:15]; 

numberOfRowsInSection - 我不知道這是否是正確的。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 

    return MIN([self.arrayRecords count], 15); 
} 
moreButtonClickAction

-(void)moreButtonClickAction { 
    if (self.numberOfRowsVisible < [self.arrayRecords count]) 
     self.numberOfRowsVisible = MIN(self.numberOfRowsVisible + 15, [self.arrayRecords count]); 
    [self.tableView reloadData]; 
} 

是我如何編輯我的代碼,以滿足留在SO上述建議。但這不起作用。 MIN似乎有一些問題。我現在不在MAC,所以我不記得我得到的確切警告/錯誤。所以有人可以幫助我。

+0

什麼是self.arrayRecords? – mariusLAN 2012-02-08 17:04:43

+0

'self.arrayRecords'包含所有記錄,例如1000條記錄,並且我將不得不一次只顯示15個使用此數組的 – shajem 2012-02-08 17:06:23

回答

1

1)不要使用一個NSNumber對象,一個普通的整數將會做。 2)爲什麼不只是一個整數變量,它顯示了你想要顯示的當前行數,並用15進行初始化,並保存在你的類實例中。 3)你甚至不用MIN:

return [self.arrayRecords count] < self.numberOfRowsVisible ? [self.arrayRecords count] : self.numberOfRowsVisible; 
+0

那麼'moreButtonClickAction'方法可能是什麼樣子? – shajem 2012-02-08 17:12:30

+0

如果numberOfRowsVisible是一個整數類型,那麼你可以使用你所擁有的。 – 2012-02-08 22:13:53

1

如果要顯示所有可能的條目,則必須使用MAX而不是MIN。

+0

self.numberOfRowsVisible是一個NSNumber。那麼我可以在MIN或MAX裏面使用這個嗎? – shajem 2012-02-08 17:08:25

+0

MAX需要Integer,你可以用intValue來施放它。只需鏈接它 – mariusLAN 2012-02-08 17:10:35

+0

您需要將其更改爲純粹的整數。你不需要在這段代碼中使用NSNumber,如果你在其他地方做,你可以在那裏轉換它。 NSNumber是一個數字對象,不只是一個數字。 – 2012-02-08 17:12:59

1

numberOfRowsInSection應返回一個整數。 self.numberOfRowsVisible不是一個整數。

viewDidLoad中:

self.numberOfRowsVisible=15; 

主要實現:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return self.numberOfRowsVisible; 
} 

-(void)moreButtonClickAction { 
    if (self.numberOfRowsVisible < [self.arrayRecords count]) { 
     self.numberOfRowsVisible += 15; 
     if (self.numberOfRowsVisible > [self.arrayRecords count]) { 
      self.numberOfRowsVisible = [self.arrayRecords count]; 
     } 
    } 
    [self.tableView reloadData]; 
} 

了我的頭頂部,代碼可能與再保辦。

+0

如果我們有8條記錄,會發生什麼。最初我們將加載15條記錄,下次我們將不得不加載3條記錄。但是如果我們返回'self.numberOfRowsVisible',我們會得到一個錯誤。我們如何解決它? – shajem 2012-02-08 17:10:31

+0

上面的代碼從15開始。再加上15,檢測到它高於18(最大計數),因此將其減少到18。沒有什麼可以解決的。 – ader 2012-02-09 10:44:08

相關問題