UIView 不会垂直滚动到 UIScrollView 内
UIView doesn't scroll inside UIScrollView in vertical
我有UIViewController
。它有一个 UIView
,在 UIScrollView
中有三个对象(UILabel
、UIImageView
、UITextView
)。当我尝试垂直滚动时,什么也没有发生。我使用自动布局。在 UIScrollView
里面没有 UIView
但底部有一个空的 space 之前。
@IBOutlet weak var scrollView: UIScrollView! {
didSet {
scrollView.delegate = self
scrollView.scrollEnabled = true
self.scrollView.frame.size = scrollView.contentSize //12
}
}
问题是您将滚动视图的框架大小设置为等于滚动视图的内容大小。滚动视图只有在其内容大于其框架时才会滚动。相反,将滚动视图的框架大小设置为与容器视图的大小相匹配,并将内容大小的高度设置为文本视图的底部。
如果你使用自动布局不需要设置滚动视图的框架,给你的视图是滚动视图高度约束的子视图,例如800 并设置滚动视图和外部视图宽度约束以匹配每个设备的宽度并使用自动布局设置滚动视图框架,这将开始滚动。
参考此link了解更多详情
当我们使用带有自动布局的滚动视图时,它有点令人困惑,但如果您看到滚动视图的行为,那么您将很容易了解它。
对于滚动视图,将四个边的约束设置为 0。
然后检查您查看的大小(您在滚动视图中添加的)并将其设置为滚动视图内容大小。
对于视图设置与滚动视图宽度相等的权重约束。
希望对你有所帮助
我有UIViewController
。它有一个 UIView
,在 UIScrollView
中有三个对象(UILabel
、UIImageView
、UITextView
)。当我尝试垂直滚动时,什么也没有发生。我使用自动布局。在 UIScrollView
里面没有 UIView
但底部有一个空的 space 之前。
@IBOutlet weak var scrollView: UIScrollView! {
didSet {
scrollView.delegate = self
scrollView.scrollEnabled = true
self.scrollView.frame.size = scrollView.contentSize //12
}
}
问题是您将滚动视图的框架大小设置为等于滚动视图的内容大小。滚动视图只有在其内容大于其框架时才会滚动。相反,将滚动视图的框架大小设置为与容器视图的大小相匹配,并将内容大小的高度设置为文本视图的底部。
如果你使用自动布局不需要设置滚动视图的框架,给你的视图是滚动视图高度约束的子视图,例如800 并设置滚动视图和外部视图宽度约束以匹配每个设备的宽度并使用自动布局设置滚动视图框架,这将开始滚动。
参考此link了解更多详情
当我们使用带有自动布局的滚动视图时,它有点令人困惑,但如果您看到滚动视图的行为,那么您将很容易了解它。
对于滚动视图,将四个边的约束设置为 0。 然后检查您查看的大小(您在滚动视图中添加的)并将其设置为滚动视图内容大小。 对于视图设置与滚动视图宽度相等的权重约束。
希望对你有所帮助