我的任务非常简单 - 只需在自定义UIView中显示垂直滚动文本。 我有一个带有一个容器的UIScrollView,里面有一个UITextView。以后需要容器来添加更多项目。我使用IB(xib文件)添加autolayout约束,如下所示:
但我看到的一切都是:
它横向滚动: - (
我尝试过设置UIScrollView的contentSize:
非常感谢!
编辑:文本视图和容器视图的内在大小设置为"占位符"。我知道我应该限制ContainerView的宽度,但它应该适用于所有屏幕尺寸和方向,因此在代码中设置宽度,IMO,比设置约束更糟。
答案 0 :(得分: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 ,水平约束设置为顶级视图。