在一些不寻常的情况下,在一个UIScrollView中,
var scroll UIScrollView
您想手动设置(我们可以说覆盖,强制)
scroll.contentSize
值。
这是有问题的,因为滚动视图会(正确地)不时设置 contentSize(显然基于内容)。因此,设置
contentSize
(据我所知)是相当棘手的,因为您必须经常将其强制调整为您的大小,并猜测何时发生。
但是,您可以设置
contentLayoutGuide
。事实上,系统会从中计算出contentSize
,你就可以开始了。
我知道这样做的唯一方法是...
var specialHeightNSC: NSLayoutConstraint?
func example() {
guard let sv = .. the relevant superview
scroll.contentLayoutGuide.leftAnchor.constraint(equalTo: sv.leftAnchor).isActive = true
scroll.contentLayoutGuide.rightAnchor.constraint(equalTo: sv.rightAnchor).isActive = true
scroll.contentLayoutGuide.topAnchor.constraint(equalTo: sv.topAnchor).isActive = true
specialHeightNSC =
scroll.contentLayoutGuide.heightAnchor.constraint(equalToConstant: 666)
amazingHeightOfContentLayoutGuideConstraint?.isActive = true
}
我通常只是在(第一次)调用 layoutSubviews 时调用它(这可能是也可能不是最好的地方,真的)。
有很多问题,例如,对于视图,您可以
.contraints
并发现视图上的所有约束。
contentLayoutGuide
似乎不可能!我不知道系统是否已经附加了其他约束,我找不到任何其他约束来删除它们等等。
简而言之您(手动)如何在 UIScrollView 上设置 contentLayoutGuide 的约束?
我从来没有在这个问题上找到任何 doco 或指导或成语。
请注意,此问题仅适用于您需要手动强制、设置、覆盖
contentLayoutGuide
. 的异常情况