如何将协议类型添加为子视图 [英] How to add protocol type as subview

查看:133
本文介绍了如何将协议类型添加为子视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我写了一个简单的协议:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆