最初不可滚动的scrollView?

Initially unscrollable scrollView?

因为我有一个滚动视图,所以我将我的视图控制器设置为具有固定大小的自由形式(因为这是我学到的)。我想让我的滚动视图以相同的 contentSize 和可滚动大小开始(这样一开始你就不能滚动),然后在按下按钮后滚动高度增加,这样你就可以滚动了。我已经在 iPhone Xr 模型模拟器上测试了所有这些,在我尝试切换到不同的 iPhone 模型(iPhone 7+)之前,一切都运行良好。当我用 7+(高度较短)测试我的程序时,scrollView 最初是可滚动的(它不应该这样),我认为这可能是因为我已经将我的视图控制器设置为自由形式尺寸(适合更高的 iPhone Xr 模型),所以当我尝试使用较小的 iPhone 模型时,它仍然具有相同的更大长度,因此它最初是可滚动的。

我想要得到的是让我的 scrollView 从 iPhone 的屏幕顶部移动到大约一半,x 在我拥有的按钮上方。我最初拥有的是:

scrollView.contentSize.height = 404

我现在知道这是完全错误的,因为我对它进行了硬编码,但我不知道还有什么方法可以找到从 iPhone 屏幕顶部到按钮的高度。也许是这样的:

scrollView.contentSize.height = button.frame.origin.y - /*y position of top of iPhone screen*/

我还认为 scrollView 的高度可能只是按钮的 y 位置,但是,因为我有一个固定的视图控制器高度,对于 iPhones 较小的显示器,这将使scrollView 比我想要的大得多(这样的大小你最初无法滚动)。

希望这是有道理的,谢谢。

如何获取屏幕尺寸:

let screenFrame = UIScreen.main.bounds   // returns a CGRect

let screenHeight = screenFrame.height    // returns a CGFloat

编辑: 如果您尝试完全使用情节提要,请尝试设置从 scrollViewview 的所需约束以将其置于您想要的位置想要。

然后 scrollViewcontentView 的高度可以设置为等于 scrollView 的高度,但优先级较低。

我认为这应该可行,但从头开始更容易解释。让我知道进展如何。