Swift值流程控制语句

作者: 闯先生的猫 | 来源:发表于2016-04-05 13:26 被阅读50次

    流程控制语句主要包括:
    1、条件分支 if else和switch
    if 表达式{
    }else{

    let a:Int = 10
            let b:Int = 20
            
            if a>b {
                print(a)
            }else{
                print(b)
            }
    

    switch:
    OC中的switch表达式:

    switch(){
    case:
    break:
    default:
    break:
    }
    

    注:OC 如果不写break 会继续执行下面的条件
    swift中的switch表达式:

    switch <#value#> {
    case <#pattern#>:
    <#code#>
    default:
    <#code#>
    }
    
    let name:Name = Name.xiaoming
    //        rawValue 枚举里面的值
            switch name{
            case .xiaoming:
                print(name.rawValue)
            case .xiaotao:
                print(name.rawValue)
            case .xiaogang:
                print(name.rawValue)
                
            default:
                print("error")
            }
    
    
    

    2、循环分支 for while (do while)
    for:
    OC:
    for (<#initialization#>; <#condition#>; <#increment#>) {
    <#statements#>
    }
    for (<#type *object#> in <#collection#>) {
    <#statements#>
    }

    Swift:
    for <#item#> in <#items#> {
    <#code#>
    }

    for var i = 0; i < 10; i += 1 {

    }
    在swift中 如果使用C里面的for循环 会建议咱们使用 for in

    for i in 0 ..< 10 {

    }

    下面给一个例子:

    class ViewController: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
            
            let titles = ["没好久好久好久回" ,"花啊哈哈啊哈哈" ,"阿拉啦啦啦啦啦" ,"哈哈哈哈"];
            
    //        swift 中 不允许不同数据类型 进行计算
    //       i 要用CGFloat转类型
            for i in 0 ..< titles.count {
                let label:UILabel = UILabel.init(frame:CGRectMake(50.0, 50.0 + 60.0 * CGFloat(i), 200.0, 50.0));
                
                label.text = titles[i]
                label.textColor = UIColor .brownColor()
                self.view.addSubview(label)
                
            }
            
        }
    

    输出结果:

    0423CB5D-B828-4288-A0E5-6F27C310925A.png

    while (do while):
    现在用repeat代理do
    repeat{
    }while{
    }

    最后我们还介绍触发事件和代理
    触发事件:
    7.3之前 用字符串 来代替方法
    button .addTarget(self, action: "doit:", forControlEvents: .TouchUpInside)
    7.3之后 #selector(ViewController.doit(_:)

     /*
            枚举里面的值 也不一样
            */
            let button = UIButton.init(type:.Custom)
            button.frame = CGRectMake(100, 100, 100, 40)
            button.backgroundColor = UIColor .brownColor()
            button.showsTouchWhenHighlighted = true
            self.view.addSubview(button)
            
            button .addTarget(self, action: "doit:", forControlEvents: .TouchUpInside)
            
        }
        func doit(sender:UIButton){
            print("触发事件")
        }
    

    Swift里的手势:

     let tap = UITapGestureRecognizer.init(target:self, action:"tap:")
            self.view.addGestureRecognizer(tap)
            
            
        }
        
        func tap(sender:UITapGestureRecognizer){
            let point = sender.locationInView(self.view)
            print("X:\(point.x) Y:\(point.y)")
            
        }
    
    D68FA64A-E96A-4DC8-B6FC-40A68576F335.png

    最后来介绍Swift中的代理:
    代理的步骤基本和OC中的一样,
    1、声明代理
    2、声明属性
    3、调用代理方法
    4、在使用代理的地方 导入代理
    5、挂上代理
    6、实现代理方法

    下面以一个button为例:
    首先我们要建一个button的类

    import UIKit
    //1、声明代理方法
    protocol MyButtonDelegate:NSObjectProtocol{
        
        func didSelect(let message:NSString)
    
    }
    
    class MyButton: UIView {
    
    //    ? 可选类型
    //    2、声明代理属性
        
    //    声明全局变量 必须是  可选类型的变量
        var delegate:MyButtonDelegate?
        
        
        init(frame: CGRect,color:UIColor) {
            super.init(frame: frame)
            
            self.backgroundColor = color
            
            let tap = UITapGestureRecognizer.init(target:self, action:"doit:")
            self.addGestureRecognizer(tap)
          
        }
    
        required init?(coder aDecoder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        }
        
        func doit(sender:UITapGestureRecognizer){
            
    //        [self.delegate ?.didSelect:@"代理"]OC
    //        3、调用代理方法
            self.delegate?.didSelect("代理")
            
        }
       
    }
    //4、导入代理
    class ViewController: UIViewController ,MyButtonDelegate
    //        5、挂上代理
            button.delegate = self
            self.view.addSubview(button)
    
        }
    //    6、实现代理
        func didSelect(message: NSString) {
            print(message)
        }
    

    这样,代理就实现了。

    相关文章

      网友评论

        本文标题:Swift值流程控制语句

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