美文网首页
Swift代码规范

Swift代码规范

作者: Eyes_cc | 来源:发表于2019-10-30 14:47 被阅读0次
    import UIKit
    // MARK: 生意号
    class BusinessNoController: BaseController {
    
        // MARK: Parameter_ComeIn
        // MARK: Parameter
        // MARK: Model
        // MARK: Properties
        
        // MARK: LifeCycle
        override func viewDidLoad() {
            super.viewDidLoad()
            
            self.navigationItem.title = "生意号"
            // AddView
            // Layout
            self.setUI()
            // AddRequest
            self.request_init()
            // AddEvent
            self.allread_Event()
            // NotificationCenter
        }
        // MARK: Layout
        private func setUI() {}
        // MARK: Notification
        @objc func LaunchImgEvent(notification: NSNotification) {
            let noti = notification.object as! [String]
            if noti[0] == "" { }
            else {
            }
            
        }
        // MARK: Network
        private func request_init() {}
        private func request_AccountList() {}
        // MARK: Event  // 事件都带上_Event、
        @objc private func allread_Event() {}
    
        
    }
    // MARK: Extension
    extension BusinessNoController: {
        // MARK: UITableViewDelegate, UITableViewDataSource
        // - DZNEmptyDataSetSource, DZNEmptyDataSetDelegate
        // - UITableViewDelegate, UITableViewDataSource
        // header
        // footer
        // selected
    }
    
    // 记账本Cell
    class ChargeAccountTableViewCell: UITableViewCell {
    
        // MARK: Config
        var topCorners = false {
            didSet {
                self.layoutSubviews()
            }
        }
        var singleAccountModel: SingleAccountModel? {
            didSet {
                // 描述
                des.text = singleAccountModel?.remark
                // 日期
                date.text = singleAccountModel?.create_time
                // 1进账,2使用
                singleAccountModel?.in_out == 1 ? (money.textColor = UIColor(hexString: "#FF7531")):(money.textColor = UIColor(hexString: "#2573FB"))
                money.text = singleAccountModel?.amount            
            }
        }
        
        override func layoutSubviews() {
            super.layoutSubviews()
            if topCorners == true {
                bgView.roundCorners_CN([.layerMinXMinYCorner, .layerMaxXMinYCorner], cornersForEarly: [.topLeft, .topRight], radii: 8)
            }
            
        }
        
    }
    
    model的规范
    // 单条模块
    class SingleModuleModel: Mappable {
        
        var module_name     = ""   // 模块名字
        var module_icon_url = ""   // 模块图标
        var group_id        = 0    // 模块id
        var time            = ""   // 模块添加时间
        var is_read         = 0    // 是否已读,1是0否
        // 新闻列表
        var newListModel  = [SingleNewModel]()
    
        required init?(map: Map) { }
    
        func mapping(map: Map) {
            id   <- map["id"]
            name <- map["name"]
        }
    }
    
    符号对齐
    // Config…
    
    声明属性时,输入属性的话加后缀 _Input
    作为附属属性时,如 _Line
    private let account_Input: UITextField = {
            let textField                      = UITextField()
            textField.font                     = UIFont.adjustFontSize(ofSize: 14)
            textField.placeholder              = "请输入手机号"
            textField.clearButtonMode          = .whileEditing
            textField.contentVerticalAlignment = .center
            textField.keyboardType             = .numberPad
            textField.textColor                = UIColor(hexString: "#333333")
            return textField
        }()
        private let account_Line: UIView = {
            let vie             = UIView()
            vie.backgroundColor = Color_lineColor
            return vie
        }()
    // 多个括号加注释是谁的结尾
                            }
                        } // if end
                    } // snp end
                } // for end
                
            }
        }
    private let shopName: UILabel = {
        let label = UILabel()
        label.textColor = Color_TitleColor
        label.text = UserDefaultsManager_CN.queryData(Defaults_User_ShopName)
        label.textAlignment = .center
        label.font = UIFont.adjustBoldFontSize(ofSize: 23)
        return label
    }()
    private let bgImageV = UIImageView(image: UIImage(named: "ShopCode_Sucai"))
    private let save: UIButton = {
        let btn = UIButton()
        btn.setTitle("保存至相册", for: .normal)
        btn.setTitleColor(UIColor.white, for: UIControl.State.normal)
        btn.titleLabel?.font = UIFont.adjustFontSize(ofSize: 16)
        return btn
    }()
    
    
    extension的规范
    // MARK: 设置颜色
    public extension UIColor {
        
        /*
        USE  :设置RGB颜色
        */
        static func adjustColorRGB_CN(_ r: CGFloat, _ g: CGFloat, _ b: CGFloat, _ a: CGFloat) -> UIColor {
            return UIColor(red: r / 255.0, green: g / 255.0, blue: b / 255.0, alpha: a)
        }
    
    }
    public extension UIView {
        /*
        USE  :UIView及其子类,添加点击手势 */
        func setTapGesture_CN(target: AnyObject, action: Selector) {
            self.isUserInteractionEnabled = true
            let tapGesture                = UITapGestureRecognizer(target : target, action : action)
            self.addGestureRecognizer(tapGesture)
        }
        
        /*
        USE  :UIView及其子类,设置部分圆角
        Tips :iOS11以后使用maskedCorners进行圆角设置,之前使用使用贝塞尔曲线画圆角。
        Parameters:
            - corners: 需要实现为圆角的角
            - radii  : 圆角半径
            - CACornerMask: layerMaxXMaxYCorner - 右下角; layerMaxXMinYCorner - 右上角;
                            layerMinXMaxYCorner - 左下角; layerMinXMinYCorner - 左上角;
            - UIRectCorner: bottomRight - 右下角; topRight    - 右上角;
                            bottomLeft  - 左下角; topLeft     - 左上角; */
        func roundCorners_CN(_ cornersForIOS11: CACornerMask?, cornersForEarly: UIRectCorner?, radii: Double) {
            if #available(iOS 11.0, *) {
                self.layer.cornerRadius  = CGFloat(radii)
                self.layer.maskedCorners = cornersForIOS11!
                self.clipsToBounds       = true
            } else {
                // Fallback on earlier versions,
                // 在视图出现后进行渲染:在viewDidAppear()或viewDidLayoutSubviews()方法中使用,需要在layoutsubviews 中使用
                let path        = UIBezierPath(roundedRect : self.bounds, byRoundingCorners : cornersForEarly!, cornerRadii : CGSize(width : radii, height : radii))
                let maskLayer   = CAShapeLayer()
                maskLayer.frame = self.bounds
                maskLayer.path  = path.cgPath
                self.layer.mask = maskLayer
            }
        }
    
    
    
    BaseController {
    
        // MARK: Parameter_ComeIn
        // MARK: Parameter
        // MARK: Model
        // MARK: Properties
        
        // MARK: LifeCycle
        override func loadView() {
            super.loadView()
            
            self.navigationItem.title = "多彩开始"
            self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "Message_Home"), style: .plain, target: self, action: #selector(self.lookMessage_Event))
        }
        override func viewDidLoad() {
            super.viewDidLoad()
            
        }
        
       // MARK: Event
       @objc private func lookMessage_Event() {
            
       }
    
    }
    class xxx: UITableViewCell {
    
        // MARK: Properties
        
        // MARK: LifeCycle
        override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
            super.init(style: style, reuseIdentifier: reuseIdentifier)
            
            // AddView
            // Layout
            
        }
        // MARK: Layout
        private func setUI() {
            
        }
        
        required init?(coder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        }
        
    }
    
    
    import Foundation
    import ObjectMapper
    
    // 所有消息
    struct SmartHelperAllMessageModel: Mappable {
        
        var status         = 0
        var msg            = ""
        var customer_hello = ""                            // 客服问候语
        var fixed_problems = [SingleFixed_problemsModel]() // 固定问题列表
        var chats          = [SingleChatsModel]()          // 用户留言 后台回复记录,返回最近的20条,之前的记录不再返回
        
        init?(map: Map) { }
    
        mutating func mapping(map: Map) {
            status         <- map["status"]
            msg            <- map["msg"]
            customer_hello <- map["data.customer_hello"]
            fixed_problems <- map["data.fixed_problems"]
            chats          <- map["data.chats"]
        }
    }
    
    struct SingleFixed_problemsModel: Mappable {
        
        var id           :Int!
        var fixed_problem = ""
        var answer        = ""
        
        init?(map: Map) { }
    
        mutating func mapping(map: Map) {
            id            <- map["id"]
            fixed_problem <- map["fixed_problem"]
            answer        <- map["answer"]
        }
    }
    struct SingleChatsModel: Mappable {
        
        var id         :Int!
        var from_type  :Int!
        var content     = ""
        var create_time = ""
        
        init?(map: Map) { }
    
        mutating func mapping(map: Map) {
            id          <- map["id"]
            from_type   <- map["from_type"]
            content     <- map["content"]
            create_time <- map["create_time"]
        }
    }
    

    相关文章

      网友评论

          本文标题:Swift代码规范

          本文链接:https://www.haomeiwen.com/subject/urbovctx.html