我在Interface Builder中創建了UITableViewCell
併爲其創建了一個子類。在它內部,我需要在標籤中顯示抽獎結果。我不知道我會得到多少結果,所以我不能在IB中爲它創建標籤,所以我在cellForRowAtIndexPath
內部創建它們。所以現在發生的事情是,當細胞被重用時,我一直在子視圖上創建子視圖。UITableViewCell中UILabels的數量未知
我曾想過在Cell子類的Interface Builder \ awakeFromNib
中創建標籤,並用它們的標籤填充它們,但我不知道會有多少標籤。
什麼是解決它的好方法?
有沒有一種方法可以刪除單元格的內容,一旦它超出了屏幕區域?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
//Where we configure the cell in each row
id currentRaffle = [_winnings objectAtIndex:indexPath.row];
RaffleResultCell *cell = [tableView dequeueReusableCellWithIdentifier:@"raffleResCell"];
if (cell == nil) {
cell = [[RaffleResultCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"raffleResCell"];
}
cell.prizeTitle.text = [currentRaffle valueForKey:@"title"];
NSArray *winningNumbers = [[currentRaffle valueForKey:@"winningNumbers"] componentsSeparatedByString:@","];
cell.numbOfRowsPerCell = 1+ [winningNumbers count]/4;
int row =0;
int col=0;
for (int i=0;i<[winningNumbers count];i++)
{
UILabel *temp =[[UILabel alloc]initWithFrame:CGRectMake(70*row, 30*col, 70, 20)];
temp.textAlignment = UITextAlignmentCenter;
temp.font=[temp.font fontWithSize:14];
temp.text = [NSString stringWithFormat:@"%@ ",[winningNumbers objectAtIndex:i]];
[cell.winningNumbersView addSubview:temp];
if(row<3)
[cell.winningNumbersView addSubview:line];
row++;
if(row >3)
{
row=0;
col++;
}
}
return cell;
}
在回答做「有沒有辦法來消除對細胞的含量,一旦它在屏幕區域的?」,沒有。因爲一旦一個單元格出現在屏幕區域中,它就不再存在。 – Tim