У меня странная проблема с рисованием пользовательского представления в UITableView.Функция drawRect моего пользовательского представления, называемого ChatBubbleView, просто рисует прямоугольник постоянного размера.
У меня есть оператор отладки NSLog в функции drawRect ChatBubbleView.Первые 5 раз я добавляю ячейку в UITableView, все хорошо рисует, и я вижу триггер оператора NSLog.Однако после 5 рисунок становится искаженным, и я больше не вижу оператора отладки.
Я совершенно сбит с толку, и я был бы признателен за любую помощь, которую вы могли бы оказать.Заранее спасибо!
Вот функция, которая вызывается при вызове reloadData для UITableView.
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (forumMode) {
//This part works, ignore
} else {
ChatBubbleView* chatBubble = nil;
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero
reuseIdentifier:CellIdentifier] autorelease];
// Add the bubble
chatBubble = [[[ChatBubbleView alloc] init] autorelease];
chatBubble.tag = BUBBLEVIEW_TAG;
[cell.contentView addSubview:chatBubble];
} else {
// Reuse old views
chatBubble = (ChatBubbleView*)[cell.contentView viewWithTag: BUBBLEVIEW_TAG];
}
chatBubble.labelSize = CGSizeMake(50, 18);
chatBubble.frame = CGRectMake(0, 0, chatBubble.labelSize.width, chatBubble.labelSize.height);
}
return cell;
}
РЕДАКТИРОВАТЬ: я должен добавить, что функция, которая перезагружает UITableView, выглядит следующим образом:
-(IBAction) btnAdd:(id) sender {
[listOfMessages addObject:textView.text];
[self.tableView reloadData];
}
РЕДАКТИРОВАТЬ 2: Я обнаружил, что пользовательские представления в ячейках иногда перерисовываются, когда я прокручиваю ячейки в и из вида.Похоже, что обновление табличного представления изменяет параметры пользовательского представления.