我的应用程序中有一个聊天系统,我试图根据单元格中的文本量使动态单元格具有动态高度,这是人们尝试做的很常见的事情,但是我无法让我的工作正常。
消息也向右对齐,发件人应该在左边,接收者应该在右边……这就是我对故事板所做的事情。
创建了一个 TableView 2 dynamic prototypes
,里面UIViewController
是 viewController ......每个单元格都有一个标签,一个左一个右,整个左右工作......这是我的问题。它只是拉向所有人的权利,所以基本上我没有if
发生,我else
正在推翻。这是一个SS。
所以我有两个问题......文本不会有多行......以及不会做动态高度,也......如果有人能指出我让发送者和接收者显示在不同方面的正确方向。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSArray *myWords = [[getMessage objectAtIndex:indexPath.row] componentsSeparatedByString:@":oyr4:"];
if (myWords[1] == [MyClass str]){
static NSString *sender = @"sender";
UITableViewCell* cellSender = [_tableView dequeueReusableCellWithIdentifier:sender];
messageContentTo = (UILabel *)[cellSender viewWithTag:83];
self->messageContentTo.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.8];
self->messageContentTo.lineBreakMode = NSLineBreakByWordWrapping;
[self->messageContentTo sizeToFit];
messageContentTo.text = myWords[4];
return cellSender;
} else {
static NSString *reciever = @"reciever";
UITableViewCell* cellReciever = [_tableView dequeueReusableCellWithIdentifier:reciever];
messageContentFrom = (UILabel *)[cellReciever viewWithTag:84];
messageContentFrom.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.8];
messageContentFrom.lineBreakMode = NSLineBreakByWordWrapping;
messageContentFrom.font = [UIFont systemFontOfSize:22];
messageContentFrom.numberOfLines = 0;
messageContentFrom.text = myWords[4];
return cellReciever;
}
}
#pragma mark - UITableViewDelegate methods
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
CGSize size = [[getMessage objectAtIndex:indexPath.row]
sizeWithFont:[UIFont systemFontOfSize:22]
constrainedToSize:CGSizeMake(1000, CGFLOAT_MAX)];
return size.height + 15;
}