ios - 编译器不喜欢 Swift 的 UIScrollViewDelegate

标签 ios swift

在将 UIScrollView 实现到 UITableViewCell 中时出现错误。

class MyItemTableViewCell: UITableViewCell, UIScrollViewDelegate {

...  

var scrollView: UIScrollView = {
        let scroll = UIScrollView()
        scroll.showsHorizontalScrollIndicator = false
        scroll.delegate = self
        return scroll;
        }()

...

func scrollViewDidScroll(scrollView: UIScrollView!) {
     ...   
    }

func scrollViewWillEndDragging(scrollView: UIScrollView!, velocity: CGPoint, targetContentOffset: CMutablePointer<CGPoint>) {
     ...   
    }
...
}

编译器在 scroll.delegate = self 行给我一个错误,说 Type MyItemTableViewCell does not conform to protocol ‘UIScrollViewDelegate’

没关系,协议(protocol)中的方法都记录为可选 (https://developer.apple.com/library/prerelease/iOS/documentation/UIKit/Reference/UIScrollViewDelegate_Protocol/index.html),但我实现了两个。

编译器想从我这里得到什么?

谢谢

最佳答案

在初始化周期中,在所有属性都被初始化之前,self 是不可用的。将其更改为:

class MyItemTableViewCell: UITableViewCell, UIScrollViewDelegate {

    var scrollView: UIScrollView

    func scrollViewDidScroll(scrollView: UIScrollView!) {
    }

    func scrollViewWillEndDragging(scrollView: UIScrollView!, velocity: CGPoint, inout targetContentOffset: CGPoint) {
    }

    init() {
        scrollView = UIScrollView()
        scrollView.showsHorizontalScrollIndicator = false
        super.init(style:UITableViewCellStyle.Default, reuseIdentifier:"cell")
        scrollView.delegate = self
    }
}

关于ios - 编译器不喜欢 Swift 的 UIScrollViewDelegate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24165999/

相关文章:

ios - Android Studio 中的“导出到 zip 文件”导致 1.2gb + 存档大小

ios - 是否可以将多个 UIGravityBehaviors 添加到 UIDynamicAnimator?

ios - TableView中的动态collectionView

ios - iOS 中的 3D 触控

与类类型的快速类型比较

ios - 如何解析nsstring中的json数据?

ios - 如何从 FQL 查询访问信息

ios - 需要帮助查找 iOS 的简单 Objective-C 代码中的错误

iOS - 如何在从远程服务流式传输时在 UITextView 中开始新行

ios - 使用 restoreCompletedTransactions() 时没有得到任何响应