iOS委托和协议
还记得刚开始学iOS的时候死活没明白所谓协议(Protocol)和委托(Delegate)的用法和背后的思路。今天终于自己写了一个Protocol和Delegate。
说白了委托就是委托别人帮你做一件事情,而协议就是这两个人签订的协议,不仅要办事,还要按照协议去办。
该文在创建自定义基类 - UIView基础上讲述。
实现Delegate和Protocol步骤如下
声明Protocol
首先声明Protocol,添加didScrolledToPage
函数到该协议,以便委托对象读取当前页面页数。
1 | protocol SCImagePagedViewDelegate { |
添加delegate对象
在private var scrollView:UIScrollView!
下面增加一行
1 | var delegate:SCImagePagedViewDelegate? |
调用View中设置Delegate
在ViewController.swift
中添加如下函数
1 | override func viewDidLoad() { |
设置Protocol函数
ViewController中增加以下函数,来更新页码
1 | func didScrolledToPage(page: Int) { |
引用函数
在自定义View SampleScrollView中scrollViewDidEndDecelerating
把println()替换为如下。
1 | if let delegate = delegate { |