【问题标题】:UITextView stretches horizontally but not vertically inside UIScrollViewUITextView 在 UIScrollView 内水平拉伸但不垂直拉伸
【发布时间】:2015-02-23 21:01:53
【问题描述】:

我的任务很简单——只需在自定义 UIView 中显示垂直滚动的文本。 我有一个带有一些容器的 UIScrollView,其中有一个 UITextView。以后需要容器来添加更多项目。我使用 IB(xib 文件)添加自动布局约束,如下所示:

但我看到的都是:

它是水平滚动的:-(

我试过设置 UIScrollView 的 contentSize:

  • 在 initWithCoder、didMoveToSuperview、willMoveToSuperview = 无效
  • 在自定义方法中,从主视图控制器调用 = 根本没有滚动,我看到的是同一张图片。

非常感谢!

编辑:文本视图和容器视图的内部大小设置为“占位符”。我知道我应该限制 ContainerView 的宽度,但它应该适用于所有屏幕尺寸和方向,所以在代码中设置宽度,IMO,比设置约束更糟糕。

【问题讨论】:

    标签: ios objective-c iphone cocoa-touch uiscrollview


    【解决方案1】:

    是的!我找到了解决办法!

    如果有人遇到同样的问题:

    你应该不向 UIScrollView 添加左右约束,而是向 UIScrollView 的超级视图(超级超级视图)添加左右约束。

    很遗憾,这不能在 IB 中完成,但您可以在代码中完成:

    [self addConstraint:[NSLayoutConstraint constraintWithItem:self.view 
        attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual
        toItem:self.containerView attribute:NSLayoutAttributeLeft
        multiplier:1.0 constant:-30]];
    [self addConstraint:[NSLayoutConstraint constraintWithItem:self.view
        attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual
        toItem:self.containerView attribute:NSLayoutAttributeRight
        multiplier:1.0 constant:30]];
    

    self.containerView 是 UIScrolllView 内部的视图,self.view 是 UIScrollView 外部的视图

    所以:

    您将垂直约束设置为UIScrollView,将水平约束设置为顶级视图

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-01
      • 2016-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多