Swift中代理使用篇(一)
来源:互联网 发布:我国大数据市场规模 编辑:程序博客网 时间:2024/06/01 09:32
代理Delegate是程序中最常用的功能之一,不亚与Swift中的闭包。今天就带来一个示范,说说在Swift中代理函数的使用方法。
如果对闭包不熟悉的同学可以参考《看我怎么搞定OC的block和Swift的闭包》
面试的时候有可能会问到,你什么时候用闭包
什么时候用代理
,我想了一想:我在使用它们两个时候尼,闭包能完成的功能代理同样也能完成。没什么区别之分。如果说非要说有区别,那就是在代码量上的了。哈哈哈哈哈哈哈
其实在使用闭包
哪里多尼?比如一个代码段指定完了需要在执行另外一个代码段,这种情况。我习惯的是,如果在同一个页面上,比如最简单的咱们封装的网络请求,用的闭包,什么情况都能铺货到。还能针对情况作出处理
代理
就是在同的页面上产生互动的时,这样我习惯用代理函数来完成功能的转接。因为在这个代理函数里,你只负责处理你当前的业务就可。方便管理、容易读
跟着我的代码一块来
今天的实例说明一下:
在一个VC上放了一个UITableview,新创建了一个UIView,并且在他的里头放了一个UIButton,点击按钮,滴啊用代理在当前的VC上刷新数据源添加到UITableview上。
1. 创建TableHeadeView
也就是头部的view
创建代理协议
@objc protocol HeaderDelegate { /**代理函数*/func buttonClick(str: String) -> String}
创建完成之后我们申明一个代理变量和一个按钮
/**代理对象*/var delegate: HeaderDelegate?/**单击按钮*/private var submitBtn: UIButton?
2. 添加UIbutton并创建单击事件
submitBtn = UIButton(type: .Custom)submitBtn?.frame = CGRectMake(10, 30, 100, 50)submitBtn?.backgroundColor = UIColor.redColor()submitBtn?.addTarget(self, action: #selector(ClickAction(_:)), forControlEvents: .TouchUpInside)self.addSubview(submitBtn!)
按钮单击事件如下
这里就使用代
/**按钮单击事件*/func ClickAction(sendr: UIButton) {/**调用代理函数,并传入数据*/self.delegate?.buttonClick("fffff")}
在这里我们调用了代理的buttonClick
的函数。该方法隶属于申明的代理,所以在调用时,就要从协议中用点语法调出。也可以把申明的接口协议
理解成类
文件来使用。
3. 看代理对象的处理方法
- 添加遵循协议
HeaderDelegate
- 创建两个属性
/**添加头部view的对象*/weak var headView: TableHeadeView?
- 在
ViewdidLoad
中初始化,并且给table的tableHeaderView
let view: TableHeadeView = TableHeadeView(frame: CGRectMake(0,0,100,100))self.headView = view/**设置代理为遵循了HeaderDelegate的对象*/self.headView?.delegate = selfmyTable.tableHeaderView = self.headView
4. 实现代理函数
NOTICE:
因为我们已经遵循了HeaderDelegate
协议,并且还设置了代理对象就是自己,所以就由自己来实现这个代理函数了。
实现代理函数
/**使用代理添加数据*/func buttonClick(str: String) -> String {self.namesArry.insert(str, atIndex: 0)self.myTable.reloadData() return "dddd"}
到这里,你点击当前的按钮,就会发现你的tableView中就多出一行咯。怎么样简单吧!!
如有问题可添加我的QQ:1290925041
还可添加QQ群:234812704(洲洲哥学院)
欢迎各位一块学习,提高逼格!
更多消息
更多信iOS开发信息 请以关注洲洲哥 的微信公众号,不定期有干货推送:
- Swift中代理使用篇(一)
- swift 中使用代理
- swift中代理的使用
- swift 中代理的使用
- swift中代理的使用
- Swift中使用代理协议
- Swift中代理的使用
- swift 中使用扩展实现代理
- swift 中使用扩展实现代理
- swift 中使用扩展实现代理
- 【Swift】代理使用举例
- Swift - swift3.0中代理方法的使用
- Swift基础之代理与传值(一)
- jdk代理(一) 静态代理和动态代理使用
- Swift-代理方法的使用
- Swift学习,NSLog的使用(一)
- Swift中if与switch语句使用一例
- Use CocoaPods With Swift (在 Swift 中使用 CocoaPods)
- androidstudio新建html
- 关于DevOps,你不知道的那些事儿
- mybatis逆向生成实体类,接口类,映射xml文件
- 2016年年度总结
- HTML总结
- Swift中代理使用篇(一)
- Python文件操作一
- JVM总结-类加载机制
- 在servlet中运行调用py程序不成功问题
- 数据降维的作用PCA与LDA
- 点击按钮更换布局中的Fragment
- Linux ALSA
- grep for windows (支持命令行)
- Maven 本地资源库