在Storyboard中的UIScrollView上添加VC的View, View的frame不正确导致view之间存在空隙的问题

问题.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)
        }
    }

附加问题: scrollView的滚动异常, 同时可以沿任意方向滚动

解决方案: 设置一下scrollView的contentSize, 如果沿x轴滚动, width值大, 如果沿y轴滚动, height值大

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容