Aas*_*gar 4 uitableview uikit ios swift swift-protocols
我有以下协议:
protocol TextViewInputField {
var indexPath: IndexPath? { get set }
var textView: UITextView { get set }
var lblPlaceHolder: UILabel { get set }
func updatePHHiddenState()
}
Run Code Online (Sandbox Code Playgroud)
一个单元TMStyle2Cell实现此协议如下:
class TMStyle2Cell: UITableViewCell,TextViewInputField {
@IBOutlet var lblPlaceHolder: UILabel!
@IBOutlet var textView: UITextView!
@IBOutlet var viewSeperator: UIView!
var indexPath: IndexPath?
func updatePHHiddenState() {
}
}
Run Code Online (Sandbox Code Playgroud)
为什么我收到以下错误?
TMStyle2Cell不确认协议TextVeiwInputField.
协议中的类型和实现不匹配.你需要:
protocol TextViewInputField {
var indexPath: IndexPath? { get set }
var textView: UITextView! { get set }
var lblPlaceHolder: UILabel! { get set }
func updatePHHiddenState()
}
Run Code Online (Sandbox Code Playgroud)
如果您使用弱IBOutlets,您还需要包括:
protocol TextViewInputField {
var indexPath: IndexPath? { get set }
weak var textView: UITextView! { get set }
weak var lblPlaceHolder: UILabel! { get set }
func updatePHHiddenState()
}
Run Code Online (Sandbox Code Playgroud)
最后,小点,但set协议的一部分可能没有必要.
协议示例。在Swift 4.2中测试。
@objc protocol ImageRepresentable {
var imageView: UIImageView! { get set }
}
Run Code Online (Sandbox Code Playgroud)
和查看。
class ViewA: UIView, ImageRepresentable {
@IBOutlet weak var imageView: UIImageView!
}
Run Code Online (Sandbox Code Playgroud)
对于你的情况。
@objc protocol TextViewInputField {
var indexPath: IndexPath? { get set }
var textView: UITextView! { get set }
var lblPlaceHolder: UILabel! { get set }
func updatePHHiddenState()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3015 次 |
| 最近记录: |