- 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);
}
网友评论