如何将协议类型添加为子视图 [英] How to add protocol type as subview
本文介绍了如何将协议类型添加为子视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以我写了一个简单的协议:
So I wrote a simple protocol:
protocol PopupMessageType{
var cancelButton: UIButton {get set}
func cancel()
}
并具有一个customView:
and have a customView:
class XYZMessageView: UIView, PopupMessageType {
...
}
然后我现在有:
class PopUpViewController: UIViewController {
//code...
var messageView : CCPopupMessageView!
private func setupUI(){
view.addSubview(messageView)
}
}
但是我想做的是:
class PopUpViewController: UIViewController {
//code...
var messageView : PopupMessageType!
private func setupUI(){
view.addSubview(messageView) // ERROR
}
}
我得到的错误:
无法转换类型为'PopupMessageType!'的值!预期的论点 输入"UIView"
Cannot convert value of type 'PopupMessageType!' to expected argument type 'UIView'
我正在使用Swift 2.3!
I'm on Swift 2.3!
推荐答案
将属性 messageView 的类型更改为(UIView& PopupMessageType)!
我的意思是
class PopUpViewController: UIViewController {
//code...
var messageView : (UIView & PopupMessageType)!
private func setupUI(){
view.addSubview(messageView) // ERROR
}
}
这篇关于如何将协议类型添加为子视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文