gpt4 book ai didi

ios - 我的聊天系统看起来有点奇怪,无法获得单元格的动态高度

转载 作者:行者123 更新时间:2023-11-28 22:34:34 24 4
gpt4 key购买 nike

我的应用程序中有一个聊天系统,我试图根据单元格中的文本量使动态单元格具有动态高度,这是人们尝试做的很常见的事情,但是我无法让我的正常工作.

消息也靠右对齐,发件人应该在左边,接收者应该在右边...这是我对 Storyboard所做的。

2 个动态原型(prototype)创建了一个 TableView,在 UIViewController 里面是那个的 viewController...每个单元格都有一个标签,一左一右,整个右边和左边的东西工作...继承人我的问题。它只是向右拉,所以基本上我的 if 没有发生,我的 else 被否决了。这是一个 SS。

所以我有两个问题...文本不会有多行...以及不会做动态高度,还有...如果有人可以指出我让发件人和收件人显示在不同侧面的正确方向。

enter image description here

- (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;
}

最佳答案

左右问题可能是因为这个:

if (myWords[1] == [MyClass str])

如果myWords[1]是字符串,需要用isEqualToString: not "=="来比较。

if ([myWords[1] isEqualToString:[MyClass str]])

就标签高度未正确调整而言,如果不知道标签的设置方式,则很难判断发生了什么。我通常通过在 IB 中的标签和单元格的顶部和底部之间进行约束来做到这一点。这样,当您更改单元格的高度时,标签将随之更改(当然,将 numberOfLines 设置为 0)。此外,在您的 sizeWithFont:constrainedToSize: 方法中,您传递给 CGSizeMake() 的宽度应该是标签的宽度,而不是 1000。

关于ios - 我的聊天系统看起来有点奇怪,无法获得单元格的动态高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16447277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com