我试图继承UIScrollView,做一些自定义绘图和创建自定义UIViews。 UIViews的绘制和创建工作正常,但视图不会滚动。
视图的内部高度是固定的,我在init方法中计算它。我也覆盖了intrinsticContentSize方法,但这并不起作用。
我做错了什么?
import UIKit
class CustomView: UIScrollView, UIScrollViewDelegate {
// MARK: - layout constants
private var _intrinsicSize: CGSize?;
override init(frame: CGRect) {
super.init(frame: frame);
self.didLoad();
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder);
self.didLoad();
}
private func didLoad() {
self.delegate = self;
var result = CGSize();
result.height = CGFloat(_halfHourHeight * 48);
result.width = 500;
_intrinsicSize = result;
}
override func intrinsicContentSize() -> CGSize {
return self._intrinsicSize!;
}
override func drawRect(rect: CGRect) {
super.drawRect(rect);
// some custom drawing here
}
}
答案 0 :(得分:1)
滚动视图通常没有内在大小,通常没有任何意义。它们有一个框架,边界和内容大小 - 它是你有兴趣设置的内容大小,它用于设置边界。
内容大小是所有子视图的总大小,边界是这些子视图当前可见区域的窗口。
尽管可以,您通常也不会有自定义绘图代码。您通常会添加子视图来为滚动视图执行该绘制。