gpt4 book ai didi

iphone - sizeToFit 运行异常

转载 作者:搜寻专家 更新时间:2023-10-30 20:21:53 26 4
gpt4 key购买 nike

每当后端数据库发生变化时,我都会执行一段代码。本质上,我在父 View 中有一个标签。标签由许多状态消息之一更新,每个状态消息都在不同的行上,以新行 (\n) 结尾。每条状态消息只需要在一行上并且不能重复。

我遇到的问题是当 View 第一次重新加载时一切正常。但是,当我在屏幕上并且背景发生变化时,状态消息偶尔会显示在多行上。虽然 sizeToFit 在使标签与包含 View 的父 View 一样高方面做得很好,但它在宽度方面做得很差。也就是说,它会分解多行文本,而不是只查看换行符。

我能做什么?

self.messageLabel.text = message; //lets get the status message.
[self.messageLabel sizeToFit];
[self.messageLabel setNeedsDisplay];
CGRect frame = [self.messageView frame];
frame.size.height = self.messageLabel.bounds.size.height;
self.messageView.frame = frame;
self.messageLabel.center = CGPointMake(CGRectGetMidX(self.messageView.bounds), CGRectGetMidY(self.messageView.bounds)-(self.messageView.cornerRadius/4));
self.messageLabel.backgroundColor = [UIColor orangeColor];
[self.messageView setNeedsDisplay];

最佳答案

为了确定您的标签需要的大小,您需要查看 NSString 大小方法。其中有许多可以告诉您字符串的大小、字体和各种约束。

例如 [@"string"sizeWithFont: forWidth: lineBreakMode:]; 将返回一个 CGSize,然后您可以使用它来适当调整标签的大小。

顺便说一句,我发现 UILabel 不能很好地处理多行字符串。您最好编写自己的 UIView subview ,它可以处理多行文本,每行都有自己的标签。

关于iphone - sizeToFit 运行异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8556880/

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