我可以根据文字调整自定义UITablleViewCell
标签的宽度和高度。它看起来像下面。
现在我想将下面的聊天气泡图像设置为标签作为背景,以便气泡根据标签文本调整其大小,并使气泡效果与其他信使类似。
以下是我将图片设置为标签背景的代码。
-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewAutomaticDimension;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewAutomaticDimension;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *simpleTableIdentifier = @"ChatConversationTableViewCell";
ChatConversationTableViewCell *cell = (ChatConversationTableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ChatConversationTableViewCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.chatmsgLabel.text = [chatHistoryArr objectAtIndex:indexPath.row];
cell.timeAndDateMsgLabel.text = [timeAndDateMsgArr objectAtIndex:indexPath.row];
UIImage *img = [UIImage imageNamed:@"bubble2.png"];
CGSize imgSize = cell.timeAndDateMsgLabel.frame.size;
UIGraphicsBeginImageContext( imgSize );
[img drawInRect:CGRectMake(0,0,imgSize.width,imgSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
cell.timeAndDateMsgLabel.backgroundColor = [UIColor colorWithPatternImage:newImage];
return cell;
}
输出看起来像
我的预期输出是
以下是我的CustomTableViewCell及其约束
的更多信息我尝试了很多来实现输出,但我无法弄明白。有没有其他方法来实现输出,我准备遵循任何适合我的要求的方法。任何帮助都将非常感激。
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以通过以下方式解决问题;
将所有约束设置为零。
这可以解决您的问题
答案 2 :(得分:-1)
执行以下步骤:
拿一个UIView(说,myView)并给出它的约束并清除backGround Color。
<=
和中等优先级的超级视图。>=
,优先级高于领先。>=
。现在使用约束
在myView中添加ImageView为text_mesage添加标签,时间,在myview中查看并相应地给出约束。
现在运行您的项目并检查。如果还有任何问题,请告诉我。