2019-11-06 UIScrollView在Xib中的快速约束

  1. UIScrollView在Xib中会报Scroll View has ambiguous scrollable content height / width,原因是UIScrollView除了设置frame外,还需要contentsize。
    常规都是在UIScrollView内放一个ContainerView,在ContainerView内放置自己的控件。

1.拖入ScrollView,对View拖线,设置4边约束


image.png

2.给ScrollView增加一个子ContainerView,ContainerView对着ScrollView拖线,设置4边约束


image.png

3.ContainerView对着控制器View拖线,(竖向滚动的话:设置等宽,给一个fixed的高度)(横向滚动的话:设置等高,给一个fixed的宽度)(也可以都设置固定高度,反正就是给ContainerView设置个宽和高的约束)


image.png

4.如果是xcode11(11的bug,感谢阿三哥!!!),修改之前的拖线约束的constant = 0

5.再次吐槽下xcode11.2,就是个垃圾,只要xib拖过UITextView,跑项目就会报错Could not instantiate class named _UITextLayoutView because no class named _UITextLayoutView was found,我已经回退到Xcode11.1版本了

6.关于这个xcode11.2的XIB bug,网上有处理方法,可以在appdidFinishLaunch方法中手动强行动态加载这个类,核心代码如下

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

友情链接更多精彩内容