ios - swift中关于枚举的问题

 集束群 发布于 2022-11-02 00:16
enum MenuButtonType:Int{
    case Return = 0, Caterine, AboutUs, Message, Logout
}

有如上枚举,为了代码的可读性,想用上面的枚举给一些类似的按钮做区别。

button.tag = MenuButtonType.Return // swift中比较强调类型 这样的附值是错误的

我暂时的想法是写一个分类

extension UIButton
{
    func transformEnumToTag (type:MenuButtonType)
    {
        switch type
        {
        case .Return:
            self.tag = 0
            ....
        }
    }
}

但是到时候又要转换回来,比较麻烦。
请问有什么好的方法

3 个回答
  • 你这种情况,就应该有一个 MenuButton 去继承 UIButton,然后内部有一个属性是 type。

    你这样的解决方式,非常的不优雅、不正确的。

    2022-11-03 00:09 回答
  • enum MenuButtonType: Int {
        case Return = 0, Caterine, AboutUs, Message, Logout
    }
    
    let button = UIButton()
    button.tag = MenuButtonType.Return.rawValue
    print(button.tag)    //0

    你要的是不是这样,加个rawValue就能获取到Return的值

    2022-11-03 00:10 回答
    1. UIButton命名规则加个字符区分

    2. 继承UIButton,加个属性区分

    2022-11-03 00:13 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有