繁体   English   中英

如何根据iOS 9中的内容获取UITextView高度

[英]How to get UITextView height according to content in iOS 9

我正在使用UITextView显示一些数据。 我需要根据其内容计算UITextView的高度。 我已经尝试过contentSize.height ,但是对我来说不起作用。 有人对此有解决方案吗? 这是我使用AutoLayout的代码。 我已经设置了出口的高度限制

CGFloat height= _myTextView.contentSize.height;
_heightConstraint.constant = height;

首先使用以下内容将文本视图调整为内容大小:

[yourtTextView sizetofit];

然后使用以下方法获取视图的高度:

double textViewHeight = yourtTextView .frame.size.height;

您可以使用以下方法计算出文字的高度,非常适合我:

CGSize maximumTextViewSize = CGSizeMake(textView.frame.size.width, CGFLOAT_MAX);

NSStringDrawingOptions options = NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin;
NSDictionary *attr = @{NSFontAttributeName: [your font and font size]};

CGRect textViewBounds = [theText boundingRectWithSize:maximumTextViewSize
                                              options:options
                                           attributes:attr
                                              context:nil];

CGFloat height = ceilf(textViewBounds.size.height);

只需添加

[self layoutIfNeeded]

计算高度后,您应该没事。

如果没有,请回到我身边。

func heightForView(text:String, font:UIFont, width:CGFloat, xpos:CGFloat) -> CGFloat {
        let label:UILabel = UILabel(frame: CGRectMake(xpos, 0, width, CGFloat.max))
        label.numberOfLines = 0
        label.lineBreakMode = NSLineBreakMode.ByWordWrapping
        label.font = font
        label.text = text

        label.sizeToFit()
        return label.frame.height
    }

启用文本视图滚动时,通过取消选中“滚动启用”或通过添加以下代码,可更改故事板中的内容,textView不会意识到其内容:

textview.scrollEnabled = false

这将使textView知道其内容,并且其高度将根据其内容而增加或缩小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM