【问题标题】:How get UITextView contentView height, if iam using sizeToFit property?如果我使用 sizeToFit 属性,如何获取 UITextView contentView 高度?
【发布时间】:2017-05-31 07:16:36
【问题描述】:

如果我使用 sizeToFit 属性,如何获取 UITextView contentView 高度?

【问题讨论】:

  • 如果你使用 sizeToFit 那么你不要使用textView.frame.size.height
  • @NiravD 我需要从 UITextView 获取行数。我得到了解决方案:int numLines = txtview.contentSize.height / txtview.font.lineHeight;。但我无法获得正确的 textView contentView 高度。

标签: ios swift3 uitextview


【解决方案1】:

如果你正在使用,

 int numLines = txtview.contentSize.height / txtview.font.lineHeight;

要获取textView 中的行数,则不需要sizeToFit 或不需要根据内容大小设置textView 的框架。

txtview.contentSize.height 会给你内容视图的高度,你可以得到行数。

但请确保您在viewDidAppear(或您的视图出现后的任何位置)而不是在viewDidload 中执行此操作,因为在viewDidload 中您的文本视图未完全加载。

【讨论】:

    【解决方案2】:

    UITextView 本身有一个名为 sizeThatFits: 的函数,它将返回在边界框内显示 UITextView 的所有内容所需的最小尺寸,您可以指定。

    以下内容同样适用于 iOS 7 和旧版本,并且截至目前不包含任何已弃用的方法。

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

    参考链接UITableViewCell with UITextView height in iOS 7?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-26
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 2022-11-04
      相关资源
      最近更新 更多