【问题标题】: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,将水平约束设置为顶级视图。