gpt4 book ai didi

ios - 标签可以采用多少文本

转载 作者:行者123 更新时间:2023-11-28 19:57:54 25 4
gpt4 key购买 nike

在我的项目中有一个特定的要求,当 UILabel 的文本被截断时,我需要为 View 提供更多功能。最初会给出一个 CGRect。因此,如果文本被截断,我们需要显示标签,我们需要在标签的末尾显示 ...查看更多 文本。点击...查看更多 view more 我需要让我的标签更大。所以我在做

NSMutableString *truncatedString = [text mutableCopy];
[truncatedString appendString:ellipsis];
NSRange range = NSMakeRange(truncatedString.length - (ellipsis.length + 1), 1);
do {
[truncatedString deleteCharactersInRange:range];
range.location--;
[self setText:truncatedString];
} while ([self isTextTruncated]);

它适用于较小的文本,因为我将它用于 UITableViewCell。由于每次都会发生上述操作,因此对于较大的文本来说它是滞后的。所以我想知道 UILabel 中采用的文本,以便我可以对新文本进行任何操作。任何帮助将不胜感激。

编辑:我有一个标签和更大的文字。说我的文字是

“Apple Inc. 是一家美国跨国公司,总部位于加利福尼亚州库比蒂诺,设计、开发和销售消费电子产品、计算机软件、在线服务和个人计算机。”如果我的标签只采用“Apple Inc. 是一家美国跨国公司……”,我只需要这段文字

最佳答案

使用此方法计算文本适合提供的 UILabel 所需的 height:

- (CGFloat)getLabelHeight:(UILabel*)label
{
CGSize constraint = CGSizeMake(label.frame.size.width, 20000.0f);
CGSize size;

NSStringDrawingContext *context = [[NSStringDrawingContext alloc] init];
CGSize boundingBox = [yourString boundingRectWithSize:constraint
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:label.font}
context:context].size;

size = CGSizeMake(ceil(boundingBox.width), ceil(boundingBox.height));

return size.height;
}

将返回的高度与标签的高度进行比较:

CGFloat heightRequired = [self getLabelHeight:myLabel];
if(myLabel.frame.size.height < heightRequired) {
//you need to show more because the text is more than the label width and height.
}
else {
//you don't need to show more because the text is not more than the label width and height.
}

编辑:比较高度的目的是检查框架是否足以显示文本。因此,即使您想增加标签的宽度以显示更多文本,它也会为您提供所需的结果。

关于ios - 标签可以采用多少文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25481073/

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