【问题标题】:How to set up the frame of UITextView in a UIScrollview如何在 UIScrollview 中设置 UITextView 的框架
【发布时间】:2012-04-18 11:41:17
【问题描述】:

我正在努力让 UIScrollView 正常工作。

我有一个带有 UIImageView 和 UITextView 的 UIScrollView 作为它的子视图。

UIScrollView、UIImageView 和 UITextView 已连接到我的控制器。

当我在 viewDidLoad 中使用这行代码时:

self.scrollView.contentSize = CGSizeMake(320, 1000);

滚动工作。但是,向下滚动时,如果 UITextView 包含大量文本,则文本的底部会被剪切掉。

我假设我必须调整 UITextView 的框架。当我在 viewDidLoad 中添加这三行时:

CGRect frame = self.bioText.frame;
frame.size = self.bioText.contentSize; 
self.bioText.frame = frame;

文字被截得更厉害了。

几个问题:

  • 如何正确调整 UITextView 以便在滚动时显示所有文本。
  • 有没有办法将滚动视图 contentSize 设置为其所有子视图的总和(而不是像现在这样硬编码)

【问题讨论】:

    标签: objective-c uiscrollview


    【解决方案1】:

    今天我刚刚解决了这个问题。您可以在 viewDidLayoutSubviews 中设置 textView 的框架。 这是我的应用程序中的代码:

    - (void)viewDidLayoutSubviews {
        CGRect rect = self.textView.frame;
        rect.size.height = self.textView.contentSize.height;
        self.textView.frame = rect;
    }
    

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      textView的contentSize不需要调整,它会根据它的文本自动调整

      如果您想让 UIScrollView 的 contentSize 根据其子视图进行调整,并且您的所有子视图都是垂直的,您可以使用它

      CGFloat height = 0
      for(UIView* sub in myScrollView.subviews)
      height += sub.frame.size.height
      
      myScrollView.contentSize = CGSizeMake(self.contentSize.width, height)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-09
        • 1970-01-01
        • 2011-08-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多