gpt4 book ai didi

ios - 使用 sizeWithAttribute 获取 UITextView 的确切大小

转载 作者:行者123 更新时间:2023-11-29 12:44:59 28 4
gpt4 key购买 nike

我有一个 UISlider 可以更改 UITextView 的字体大小。在更改字体大小之前,我想检查一下 UITextView 的高度是否低于其 View 容器的高度。问题是 sizeToFitsizeWithAttribute 为相同的字体大小返回不同的高度。

为此,我尝试使用自定义字体大小获取 UITextView 的高度,但我想不出这样做的方法,也不明白为什么我不这样做当我这样做时得到相同的高度:

self.photoDescription.text = @"Test"
self.photoDescription.font = [self.photoDescription.font fontWithSize:18];
[self.photoDescription sizeToFit];
NSLog(@"real height %f", self.photoDescription.frame.size.height);
//getting : 37.5

和:

NSLog(@"calculated height %f", [self.photoDescription.text sizeWithAttributes:@{NSFontAttributeName:[self.photoDescription.font fontWithSize:18]}].height);
//getting: 20.97

同样的事情:

CGRect textRect = [self.photoDescription.text boundingRectWithSize:CGSizeMake(320, 300)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:[self.photoDescription.font fontWithSize:18]}
context:nil];

CGSize size = textRect.size;
NSLog(@"height %f", size.height);
// getting : 20.97

对此有什么想法吗?

最佳答案

我终于在 Jordan Montel Solution 中找到了问题的答案: iOS7 UITextView contentsize.height alternative

我用他的函数来获取宽度:

- (CGFloat)textViewHeightForAttributedText:(NSAttributedString *)text andWidth:(CGFloat)width
{
UITextView *textView = [[UITextView alloc] init];
[textView setAttributedText:text];
CGSize size = [textView sizeThatFits:CGSizeMake(width, FLT_MAX)];
return size.height;
}

关于ios - 使用 sizeWithAttribute 获取 UITextView 的确切大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23877251/

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