
问题.png
问题分析: 由于在Storyboard中布局时, 选择是特定机型进行的布局, 所以在加载时如果加载到与storyboard中的机型不一致的手机上会出现frame异常的情况(可以在scrollView所在的vc的viewDidLoad方法中打印一下scrollView的frame)
解决方案: 在viewDidLayoutSubviews方法中重置一下 view 的frame
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let width = UIScreen.main.bounds.width
let height = scrollView.bounds.height
scrollView.contentSize = CGSize(width: width * 3, height: height)
let subs = scrollView.subviews
for (i, view) in subs.enumerated() {
view.frame = CGRect(x: CGFloat(i) * width, y: 0, width: width, height: height)
}
}