IOS, swift : How come my subclass of UIScrollView doesn't scroll?

标签 ios swift uiscrollview

我正在尝试对 UIScrollView 进行子类化,以进行一些自定义绘图和创建自定义 UIView。 UIView 的绘制和创建工作正常,但 View 只是不滚动。

view的内部高度是固定的,我在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
    }
}

最佳答案

ScrollView 通常没有固有尺寸,它通常没有任何意义。它们有一个框架、边界和内容大小 - 这是您感兴趣的内容大小,它用于设置边界。

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

虽然您可以,但您通常也不会有自定义绘图代码。您通常会添加 subview 来为 ScrollView 绘制该图。

关于IOS, swift : How come my subclass of UIScrollView doesn't scroll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39186413/

相关文章:

ios - Xcode6 Storyboard每种分辨率的不同图像

带有 ScrollView 和键盘的 iOS AutoLayout

iOS - 如何将一个 View 的 subview 拖到新 View 中(即拖放)?

ios - Twitter 让 UITableView 滚动流畅的技巧是什么?

ios - 由于表格 View 中的可重用单元格,当 Youtube 播放器滚动到 View 之外时,它会丢失

当键盘出现时,ios激活登录表单上的滚动

ios - 在 Swift 2.3 中使用 swift 3 框架

ios - 具有动态数据源页面的 UIPageViewController 被重复

ios - CNSaveRequest.addGroup 和 deleteGroup 不会立即更改联系人中的组

ios - Parse.com 查询超过 1000 个对象