Swift_纯代码定义view和其内部控件

我最近在学习爱鲜蜂项目,实现了部分功能,如果有朋友也在学习,欢迎相互交流和学习,因此,我将部分界面记录一下,方便以后查阅,同时也希望可以帮助其他人!
效果图

Swift_纯代码定义view和其内部控件_第1张图片
Paste_Image.png

代码

import UIKit

// MARK: - 全局常用属性
public let NavigationH: CGFloat = 64
public let ScreenWidth: CGFloat = UIScreen.mainScreen().bounds.size.width
public let ScreenHeight: CGFloat = UIScreen.mainScreen().bounds.size.height

enum HelpCellType: Int {
    case Phone = 0
    case Question = 1
}

class ViewController: UIViewController {
    
    let margin: CGFloat = 20
    let backView: UIView = UIView(frame: CGRectMake(0, 10 + NavigationH, ScreenWidth, 100))
    
    override func viewDidLoad() {
        super.viewDidLoad()
        navigationItem.title = "客服帮助"
        view.backgroundColor = UIColor(red: 239 / 255.0, green: 239 / 255.0, blue: 239 / 255.0, alpha: 1)
        backView.backgroundColor = UIColor.whiteColor()
        view.addSubview(backView)
        
        let phoneLabel = UILabel(frame: CGRectMake(margin, 0, ScreenWidth - margin, 50))
        creatLabel(phoneLabel, text: "客服电话: 400-8484-842", type: .Phone)
        
        let arrowImageView = UIImageView(image: UIImage(named: "icon_go"))
        arrowImageView.frame = CGRectMake(ScreenWidth - 20, (50 - 10) * 0.5, 5, 10)
        backView.addSubview(arrowImageView)
        
        let lineView = UIView(frame: CGRectMake(margin, 49.5, ScreenWidth - margin, 1))
        lineView.backgroundColor = UIColor.grayColor()
        lineView.alpha = 0.2
        backView.addSubview(lineView)
        
        let questionLabel = UILabel(frame: CGRectMake(margin, 50, ScreenWidth - margin, 50))
        creatLabel(questionLabel, text: "常见问题", type: .Question)
        
        let arrowImageView2 = UIImageView(image: UIImage(named: "icon_go"))
        arrowImageView2.frame = CGRectMake(ScreenWidth - 20, (50 - 10) * 0.5 + 50, 5, 10)
        backView.addSubview(arrowImageView2)
        
    }
    
    // MARK - Method
    private func creatLabel(label: UILabel, text: String, type: HelpCellType) {
        label.text = text
        label.userInteractionEnabled = true
        label.font = UIFont.systemFontOfSize(15)
        label.tag = type.hashValue
        backView.addSubview(label)
        
        let tap = UITapGestureRecognizer(target: self, action: #selector(self.cellClick(_:)))
        label.addGestureRecognizer(tap)
    }
    
    // MARK: - Action
    func cellClick(tap: UITapGestureRecognizer) {
        
        switch tap.view!.tag {
        case HelpCellType.Phone.hashValue :
            let alertView = UIAlertView(title: "", message: "400-8484-842", delegate: self, cancelButtonTitle: "取消", otherButtonTitles: "拨打")
            alertView.show()
            break
        case HelpCellType.Question.hashValue :
            print("常见问题!")
            break
        default : break
        }
    }
}

extension ViewController: UIAlertViewDelegate {
    func alertView(alertView: UIAlertView, clickedButtonAtIndex buttonIndex: Int) {
        if buttonIndex == 1 {
            UIApplication.sharedApplication().openURL(NSURL(string: "tel:4008484842")!)
        }
    }
}

你可能感兴趣的:(Swift_纯代码定义view和其内部控件)