• RxCocoa 同样对 UIGestureRecognizer 进行了扩展,并增加相关的响应方法。现在以滑动手势为例做具体说明,其它手势用法也是一样的。
  • 当手指在界面上向上滑动时,弹出提示框,并显示出滑动起点的坐标,效果如下:

  • 响应回调的示例一:
// 添加一个上滑手势
let swipe = UISwipeGestureRecognizer()
swipe.direction = .up
self.view.addGestureRecognizer(swipe)// 手势响应
swipe.rx.event.subscribe(onNext: { [weak self] recognizer in// 滑动的起点let point = recognizer.location(in: recognizer.view)self?.showAlert(title: "向上划动", message: "\(point.x) \(point.y)")}).disposed(by: disposeBag)// 显示消息提示框
func showAlert(title: String, message: String) {let alert = UIAlertController(title: title, message: message,preferredStyle: .alert)alert.addAction(UIAlertAction(title: "确定", style: .cancel))self.present(alert, animated: true)
}
  • 响应回调的示例二:
// 添加一个上滑手势
let swipe = UISwipeGestureRecognizer()
swipe.direction = .up
self.view.addGestureRecognizer(swipe)// 手势响应
swipe.rx.event.bind { [weak self] recognizer inlet point = recognizer.location(in: recognizer.view)self?.showAlert(title: "向上划动", message: "\(point.x) \(point.y)")}.disposed(by: disposeBag)

RxSwift之UI控件UIGestureRecognizer扩展的使用相关推荐

  1. RxSwift之UI控件UITableView扩展的使用

    一.基本使用 ① 单分区的表格 如下所示,单个分区的表格展示: 示例代码: import UIKit import RxSwift import RxCocoaclass ViewController ...

  2. RxSwift之UI控件UICollectionView扩展的使用

    一.基本用法 ① 单个分区的集合视图 效果如下: 示例代码: // 定义布局方式以及单元格大小 let flowLayout = UICollectionViewFlowLayout() flowLa ...

  3. RxSwift之UI控件UIPickerView扩展的使用

    一.基本用法 ① 单列的情况 基本用法 示例代码: var pickerView : UIPickerView!// 最简单的pickerView适配器(显示普通文本) private let str ...

  4. RxSwift之UI控件Label扩展的使用

    一.将数据绑定到 text 属性上(普通文本) 当程序启动时就开始计时,同时将已过去的时间格式化后显示在 label 标签上: // 创建文本标签 let label = UILabel(frame: ...

  5. RxSwift之UI控件UITextField与UITextView扩展的使用

    一.监听单个 textField 内容的变化(textView 同理) 将 textField 里输入的内容实时地显示到控制台中,示例代码: // 创建文本输入框 let textField = UI ...

  6. RxSwift之UI控件UISwitch与UISegmentedControl扩展的使用

    一.UISwitch(开关按钮) 实现当 switch 开关状态改变时,输出当前值: 示例代码: switch1.rx.isOn.asObservable().subscribe(onNext: {p ...

  7. RxSwift之UI控件UISlider与UIStepper扩展的使用

    一.UISlider(滑块) 如下所示,当拖动滑块时,在控制台中实时输出 slider 当前值: 当前值为:0.308442 当前值为:0.349990 当前值为:0.400087 当前值为:0.45 ...

  8. RxSwift之UI控件UIActivityIndicatorView与UIApplication扩展的使用

    一.UIActivityIndicatorView(活动指示器) UIActivityIndicatorView 又叫状态指示器,它会通过一个旋转的"菊花"来表示当前的活动状态. ...

  9. RxSwift之UI控件UIButton与UIBarButtonItem扩展的使用

    一.点击事件响应 如果想实现点击按钮后,弹出一个消息提示框: 示例代码: import UIKit import RxSwift import RxCocoaclass ViewController: ...

最新文章

  1. 华为诺亚方舟郝建业:深度强化学习的三大挑战
  2. 2014-3-9 星期天[周末计划实施总结]
  3. hutool获取5天前的日期_JavaSE基础:18个Java8处理日期的新花样,肯定没用过!
  4. 通过一个简单的例子,了解如何单步调试 Cypress 代码
  5. iOS 高效 Mac 配置
  6. Extjs 强大的WEB窗体开发库
  7. 用户界面的一些好的设计理念
  8. 程序出错后 程序员给测试人员的20条高频回复
  9. WaitForSingleObject与WaitForMultipleObjects用法详解
  10. windows 不能确定用户和计算机名称
  11. 【转】char码值对应列表大全
  12. 计算机网络宽带越大 网速越快,如何调节自己的电脑网速?几个步骤教你如何给电脑提速与降速!...
  13. speex java_(原创)speex与wav格式音频文件的互相转换(二)
  14. 计算机用几个字节储存,GB2312编码的字符在计算机中存储时使用几个字节
  15. keepalved(DR模式群集冗余备份)
  16. 微信公众平台之模拟登录
  17. 东莞女德班被责令停办 学员被遣散并退回学费
  18. Oracle 19C RAC 静默(silent)安装on RHEL7.x
  19. “GANs”与“ODEs”:数学建模的终结?
  20. 工作日计算器提供节假日api

热门文章

  1. oracle数据库中substring的使用方法
  2. 采用vue-cli安装的一些注意点
  3. python小练习之一
  4. nodejs + Mysql 在前端页面控制后台数据
  5. 由于权限不足而无法读取配置文件出现的HTTP 500.19解决办法
  6. sqlserver中查找长时间未提交事务
  7. 年轻工程师如何锻炼成高手的
  8. SharePoint 2007 开发系列(14) 调试sharepoint web part
  9. 部署redis mysql_【服务器部署Redis、Mysql等】-解决方式
  10. * 图形例子,函数实现体会地址传递