swift3 在view中写按钮,在controller中写事件,闭包

本文深入介绍了Swift中的闭包概念,包括闭包的多种用途及如何将闭包赋值给变量、作为函数参数或返回值。文章还探讨了闭包与Objective-C中的Block之间的相似性,并详细解释了闭包的三种形式:全局函数、嵌套函数和闭包表达式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

闭包Swift中非常有用。闭包使用具有多样性,比如你可以将闭包赋值给一个变量,你也可以将闭包作为一个函数的参数,你甚至可以将闭包作为一个函数的返回值。它的强大之处可见一斑。

Swift中的闭包类似Objective-C中的Block。其实,如果你想在Swift中实现Objective-C里的Block功能,你可以直接使用闭包来代替。Block和闭包的区别只是语法的不同而已,而且闭包的可读性比较强。

闭包有三种形式:

  1. 全局函数是一个有名字但不会捕获任何值的闭包。
  2. 嵌套函数是一个有名字并可以捕获到其封闭函数域内的值的闭包。
  3. 闭包表达式是一个利用轻量级语法所写的,可以捕获其上下文中变量或常量值的匿名闭包。

view中

 lazy var redPakcetButton: UIButton = {

        let button = UIButton()

        button.setImage(UIImage(named:"red_bag"), for: UIControlState.normal)

        //指定函数

        button.addTarget(self, action: #selector(redPacketAction), for: UIControlEvents.touchUpInside)

        return button

    }()

    //闭包,放入函数中

    var tellFoundNewsControllerBlock:(()->())?

    //按钮所指向的函数,其中包含闭包

    @objc func redPacketAction(){

        tellFoundNewsControllerBlock?()

    }

controller中

var vView = FoundGuanFangDetailTableView()//闭包所在view

//view中的闭包

        vView.tellFoundNewsControllerBlock = {

            

            //点击事件要执行的代码

            .........

            

        }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值