3

我需要计算 UItextview 的高度。但是具有换行符(\n) 字符的文本视图意味着,它的计算不正确。前任 :

测试\n Lorem Ipsum 只是\n印刷和排版行业的虚拟文本\n

如何用换行符测量 UITextView 内容高度?

4

3 回答 3

4

只需使用以下代码可能会对您有所帮助。

NSString *strtest =@"Test \n Lorem Ipsum is simply \n dummy text of the printing \n and typesetting industry";
yourtextView.text = strtest;
CGRect framefortext = _textView.frame;
framefortext.size.height = yourtextView.contentSize.height;
yourtextView.frame = framefortext;
于 2013-10-09T12:18:10.750 回答
1

我正在使用此代码来查找和设置标签的确切高度,希望它对你也有帮助

[label setNumberOfLines:0];
[label sizeToFit];
int heightofbottom = label.frame.size.height;
NSLog(@"%d",heightofbottom);
于 2013-10-09T12:32:54.467 回答
0

您可以使用NSString 的componentsSeparatedBy:方法和sizeWithFont:方法。

使用 sizeWithFont 方法获取所有组件的大小,然后汇总所有高度 - 这将是结果高度,并选择最大宽度 - 这将是结果宽度。

- (CGSize)sizeFromString:(NSString *)string {
    NSArray *componentsArray = [string componentsSeparatedBy:@"n\\"];
    CGFloat resultHeight = 0.f;
    CGFloat resultWidth = 0.f;
    for (NSString *component in componentsArray) {
        CGSize componentSize = [component sizeWithAttributes: ....]; // some attributes
        resultHeight += componentSize.height; 
        componentWidth = componentSize.width;
        if (componentWidth > resultWidth) {
            resultWidth = componentWidth
        }
    }
    return CGSizeMake(resultWidth, resultHeight);
}

也许您还应该总结“垂直填充”的高度(文本行之间的间隔)

于 2013-10-09T12:12:50.350 回答