美文网首页
Swift_纯代码定义view和其内部控件

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

作者: YHWXQ简简单单的生活 | 来源:发表于2016-09-08 16:59 被阅读31次

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

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和其内部控件

    我最近在学习爱鲜蜂项目,实现了部分功能,如果有朋友也在学习,欢迎相互交流和学习,因此,我将部分界面记录一下,方便以...

  • 自定义控件注意点

    自定义控件的步骤和注意点. 纯代码创建: 重写initWithFrame(init方法内部会调用这个方法),你如果...

  • iOS 自定义view创建和使用问题积累

    自定义view创建 1.纯代码的方式创建自定义View 自定义view的基本步骤 具体实现代码 以上是纯代码实现的...

  • 自定义View的封装

    view的封装 如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部子控件的创建屏蔽起来。 ...

  • view的封装

    view的封装 - 如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部子控件的创建屏蔽起来...

  • MVC之View

    view的封装 如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部子控件的创建屏蔽起来,不...

  • 010:view的封装

    view的封装 如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部子控件的创建屏蔽起来,不...

  • iOS边练边学--view的封装

    一、view封装的思路: *如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部的子控件的创...

  • View自定义控件的封装

    为什么要封装view如果一个view内部的子控件比较多,一般会考虑自定义一个view,把它内部子控件的创建屏蔽起来...

  • xcode直接给xib,sb内控件添加圆角等属性

    纯代码设置Button或者其他View的边框属性 以下提供自定义控件的时候,使用Xib,或者用sb来进行布局,那么...

网友评论

      本文标题:Swift_纯代码定义view和其内部控件

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