在将 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/