看來工作更快做到這一點:把cellforrowatindexpath放在哪裏?
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
JHomeViewCell *cell = (JHomeViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[JHomeViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
cell.cellContent.thumbnailCache = self.thumbnailCache;
}
Entry *entry = [self.resultsController objectAtIndexPath:indexPath];
if (cell.cellContent.entry != entry) {
[cell.cellContent setNeedsDisplay];
}
}
問題是,當一個條目被編輯,該小區沒有發生變化。我可以檢查單元格的所有元素,看看它們是否有所不同,但有沒有更好的方法來做到這一點?每次出現單元格時調用drawrect會降低應用程序的速度,似乎沒有必要。
爲什麼編輯問題中的代碼後,在得到答案後,問題的答案如何?哪一個是你的真實代碼?用'drawRect:'或'setNeedsDisplay'? – 2012-04-29 17:58:49