IOS,Swift:为什么我的UIScrollView子类不会滚动?

时间:2016-08-27 22:35:55

标签: ios swift uiscrollview

我试图继承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
    }
}

1 个答案:

答案 0 :(得分:1)

滚动视图通常没有内在大小,通常没有任何意义。它们有一个框架,边界和内容大小 - 它是你有兴趣设置的内容大小,它用于设置边界。

内容大小是所有子视图的总大小,边界是这些子视图当前可见区域的窗口。

尽管可以,您通常也不会有自定义绘图代码。您通常会添加子视图来为滚动视图执行该绘制。