【发布时间】:2017-10-11 00:20:44
【问题描述】:
我正在使用 TableView 创建聊天应用程序。每个单元格代表一个味精。单元格高度根据 msg 的内容而变化。 例如,如果它是一张照片,它将有一个固定的尺寸。 如果它是一个文本,它的大小将取决于 msg 中的行数。 当用户尝试根据键盘的大小发送消息时,整个 TableView 的大小也会发生变化。
问题是,当 tableView 大小发生变化时,tableView 单元格会变得混乱! 这只发生在向下滚动时(重新渲染消失的单元格)
更新:如果某些单元格不可见(大 tableView),也会发生这种情况。在重新调整大小之前。而且它也没有任何类型。因为如果消息都是文本,它会做同样的事情
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if ([[[msg objectAtIndex:indexPath.row] objectForKey:@"type"] isEqualToString:@"msg"]) {
int numberOfline= [[[msg objectAtIndex:indexPath.row] objectForKey:@"line"] intValue];
return topMergeH + topBubbleH + bottomBubbleH + bottomMergeH + (bubbleHieght*numberOfline);
}
else
return topMergeH + topBubbleH + bottomBubbleH + bottomMergeH + bubbleHieght + 220;
}
- (void) changeTextFieldPoistion {
//TextFieldHight = 30
[_typeRef setFrame:
CGRectMake(0,self.view.frame.size.height-keyBoardHeight-30
, _typeRef.frame.size.width, _typeRef.frame.size.height)];
[_myTableView setFrame:
CGRectMake(_myTableView.frame.origin.x, _myTableView.frame.origin.y
, 374, self.view.frame.size.height-_myTableView.frame.origin.y-keyBoardHeight-30)];
}
【问题讨论】:
标签: ios objective-c iphone uitableview