- 浏览: 2203734 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1240)
- mac/IOS (287)
- flutter (1)
- J2EE (115)
- android基础知识 (582)
- android中级知识 (55)
- android组件(Widget)开发 (18)
- android 错误 (21)
- javascript (18)
- linux (70)
- 树莓派 (18)
- gwt/gxt (1)
- 工具(IDE)/包(jar) (18)
- web前端 (17)
- java 算法 (8)
- 其它 (5)
- chrome (7)
- 数据库 (8)
- 经济/金融 (0)
- english (2)
- HTML5 (7)
- 网络安全 (14)
- 设计欣赏/设计窗 (8)
- 汇编/C (8)
- 工具类 (4)
- 游戏 (5)
- 开发频道 (5)
- Android OpenGL (1)
- 科学 (4)
- 运维 (0)
- 好东西 (6)
- 美食 (1)
最新评论
-
liangzai_cool:
请教一下,文中,shell、C、Python三种方式控制led ...
树莓派 - MAX7219 -
jiazimo:
...
Kafka源码分析-序列5 -Producer -RecordAccumulator队列分析 -
hp321:
Windows该命令是不是需要安装什么软件才可以?我试过不行( ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
hp321:
Chenzh_758 写道其实直接用一下代码就可以解决了:JP ...
ImageIO读jpg的时候出现javax.imageio.IIOException: Unsupported Image Type -
huanghonhpeng:
大哥你真强什么都会,研究研究。。。。小弟在这里学到了很多知识。 ...
android 浏览器
简介
RxGesture是RxSwift社区的产物,是对view手势的封装。
项目地址:RxGesture
话不多说,直接来看它的用法吧。
点击
双击
下划
水平划动
长按
拖动
旋转
缩放
变换
屏幕边缘
组合
过滤
默认对手势是没有过滤的,所以你会收到初始化的第一个手势事件。
下面是几种手势对应的状态:
还可以组合不同条件的手势:
代码
代码见github:
RxSwiftRxGesture
RxGesture是RxSwift社区的产物,是对view手势的封装。
项目地址:RxGesture
话不多说,直接来看它的用法吧。
点击
tapView.rx .tapGesture() .when(.recognized) .subscribe( onNext:{ _ in print("tapped!!!") } ) .disposed(by: disposeBag)
双击
tapView.rx .tapGesture(numberOfTapsRequired: 2) .when(.recognized) .subscribe( onNext:{ _ in print("double tapped!!!") } ) .disposed(by: disposeBag)
下划
tapView.rx .swipeGesture(.down) .when(.recognized) .subscribe( onNext:{ _ in print("swipe down!!!") } ) .disposed(by: disposeBag)
水平划动
tapView.rx .swipeGesture([.left, .right]) .when(.recognized) .subscribe( onNext:{ _ in print("swipe left or right!!!") } ) .disposed(by: disposeBag)
长按
tapView.rx .longPressGesture() .when(.began) .subscribe( onNext:{ _ in print("long press") } ) .disposed(by: disposeBag)
拖动
let panGesture = tapView.rx.panGesture().shareReplay(1) panGesture .when(.changed) .asTranslation() .subscribe( onNext: { [unowned self] translation, _ in self.label.text = String(format: "(%.2f, %.2f)",translation.x, translation.y) self.tapView.transform = CGAffineTransform(translationX: translation.x, y: translation.y) } ) .disposed(by: disposeBag) panGesture .when(.ended) .subscribe( onNext: { _ in print("panGesture end") } ) .disposed(by: disposeBag)
旋转
let rotationGesture = tapView.rx.rotationGesture().shareReplay(1) rotationGesture .when(.changed) .asRotation() .subscribe( onNext: { [unowned self] rotation, _ in self.label.text = String(format: "%.2f rad", rotation) self.tapView.transform = CGAffineTransform(rotationAngle: rotation) } ) .disposed(by: disposeBag) rotationGesture .when(.ended) .subscribe( onNext: { _ in print("rotationGesture end") } ) .disposed(by: disposeBag)
缩放
let pinchGesture = view.rx.pinchGesture().shareReplay(1) pinchGesture .when(.changed) .asScale() .subscribe( onNext: { [unowned self] scale, _ in self.label.text = String(format: "x%.2f", scale) self.tapView.transform = CGAffineTransform(scaleX: scale, y: scale) } ) .disposed(by: disposeBag) pinchGesture .when(.ended) .subscribe( onNext: { _ in print("pinchGesture end") } ) .disposed(by: disposeBag)
变换
let transformGestures = view.rx.transformGestures().shareReplay(1) transformGestures .when(.changed) .asTransform() .subscribe( onNext: { [unowned self] transform, _ in self.label.numberOfLines = 3 self.label.text = String(format: "[%.2f, %.2f,\n%.2f, %.2f,\n%.2f, %.2f]", transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty) self.tapView.transform = transform } ) .disposed(by: disposeBag) transformGestures .when(.ended) .subscribe( onNext: { [unowned self] _ in self.label.numberOfLines = 1 print("transformGestures end") } ) .disposed(by: disposeBag)
屏幕边缘
view.rx .screenEdgePanGesture(edges: .right) .when(.recognized) .subscribe( onNext: { _ in print("right edge") } ) .disposed(by: disposeBag)
组合
tapView.rx .anyGesture(.tap(), .swipe([.up, .down])) .when(.recognized) .subscribe( onNext: { _ in print("tap or up down") } ).disposed(by: disposeBag)
过滤
默认对手势是没有过滤的,所以你会收到初始化的第一个手势事件。
下面是几种手势对应的状态:
还可以组合不同条件的手势:
tapView.rx .anyGesture( (.tap(), when: .recognized), (.pan(), when: .ended) ) .subscribe(onNext: { gesture in // Called whenever: // - a tap is recognized (state == .recognized) // - or a pan is ended (state == .ended) print("tap is recognized or pan is ended") }) .disposed(by: disposeBag)
代码
代码见github:
RxSwiftRxGesture
发表评论
-
带你深入理解 FLUTTER 中的字体“冷”知识
2020-08-10 23:40 635本篇将带你深入理解 Flutter 开发过程中关于字体和文 ... -
Flutter -自定义日历组件
2020-03-01 17:56 1111颜色文件和屏幕适配的文件 可以自己给定 import ... -
Dart高级(一)——泛型与Json To Bean
2020-02-23 19:13 1005从 Flutter 发布到现在, 越来越多人开始尝试使用 Da ... -
flutter loading、Progress进度条
2020-02-21 17:03 1181Flutter Progress 1 条形无固定值进度条 ... -
Flutter使用Https加载图片
2020-02-21 01:39 1020Flutter使用Https加载图片 使用http加载图片出 ... -
flutter shared_preferences 异步变同步
2020-02-21 00:55 848前言 引用 在开发原生iOS或Native应用时,一般有判断上 ... -
Flutter TextField边框颜色
2020-02-19 21:31 937监听要销毁 myController.dispose(); T ... -
flutter Future的正确用法
2020-02-18 21:55 808在flutter中经常会用到异步任务,dart中异步任务异步处 ... -
记一次Flutter简单粗暴处理HTTPS证书检验方法
2020-02-18 14:13 979最近在做Flutter项目到了遇到一个无解的事情,当使用Ima ... -
flutter 获取屏幕宽度高度 通知栏高度等屏幕信息
2019-07-27 08:39 1344##MediaQuery MediaQuery.of(con ... -
Mac上制作Centos7系统U盘安装盘
2019-07-23 11:25 651Centos7 下载地址: https://www.cento ... -
关于flutter RefreshIndicator扩展listview下拉刷新的问题
2019-07-10 19:40 1141当条目过少时listview某些嵌套情况下可能不会滚动(条目 ... -
flutter listview 改变状态的时候一直无限添加
2019-07-10 16:01 790setstate的时候会一直无限的调用listview.bui ... -
Flutter Android端启动白屏问题的解决
2019-07-09 00:51 1524问题描述 Flutter 应用在 Android 端上启动时 ... -
Flutter中SnackBar使用
2019-07-08 23:43 781底部弹出,然后在指定时间后消失。 注意: build(Bui ... -
Flutter 之点击空白区域收起键盘
2019-07-08 18:43 1792点击空白处取消TextField焦点这个需求是非常简单的,在学 ... -
Flutter 弹窗 Dialog ,AlertDialog,IOS风格
2019-07-08 18:04 1383import 'package:flutter/mate ... -
flutter ---TextField 之 输入类型、长度限制
2019-07-08 14:30 2337TextField想要实现输入类型、长度限制需要先引入impo ... -
【flutter 溢出BUG】键盘上显示bottom overflowed by 104 PIXELS
2019-07-08 11:13 1567一开始直接使用Scaffold布局,body:new Colu ... -
解决Flutter项目卡在Initializing gradle...界面的问题
2019-07-07 12:53 880Flutter最近很火,我抽出了一点时间对Flutter进行了 ...
相关推荐
### RxSwift:Swift语言下的响应式编程 #### 核心概念与原理 **RxSwift**是一种基于Swift语言的响应式编程框架,它提供了一种处理异步数据流的...无论是新手还是有经验的开发人员,都可以从学习RxSwift中获益匪浅。
The-introduction-to-RxSwift-you-have-been-missing, 关于RxSwift的介绍你已经错过了 :介绍了你所缺少这个工作受到的启发,介绍了你缺少的反应性编程:来自 @andrestaltz的。 我在RxSwift中为那些正在努力学习...
《RxSwift:Swift中的响应式编程与源码解析》 RxSwift是Swift编程语言中一个强大的响应式编程库,它引入了ReactiveX的概念,使得处理异步操作、事件流和数据流变得更加简洁和优雅。这个资料包包含了RxSwift的理论...
通过学习SwiftHub的源代码,开发者可以深入理解如何在iOS应用中有效地运用RxSwift和MVVM-C架构,同时也能了解到如何处理网络请求、数据持久化以及UI设计等问题。这对于提升iOS开发技能和掌握现代Swift开发实践非常有...
标题 "GitHub iOS client in ...总的来说,这个项目提供了一个学习iOS开发、RxSwift实践和MVVM-C架构的实例。通过这个项目,开发者可以了解如何在iOS应用中有效地处理异步操作,以及如何构建可维护、可扩展的代码结构。
RxSwift-Tutorial RxSwift QQ 交流群: 424180219 Rx 教程 推荐 RxSwift进阶与实战 基于RxSwift的MVVMR架构(一)思想、基本原理及初步实现 一个基于MVVM架构模式的RxSwiftDemo,旨在掌握RxSwift较为进阶的内容 【漫谈...
在iOS开发中,RxSwift是一个强大的响应式编程库,它为Swift编程引入了ReactiveX的概念,使得异步操作和事件处理变得更加简洁和易于管理。本Demo主要关注RxSwift中的核心概念——`Observable`(可观察序列),我们将...
8. **电子书**:RxSwift.Reactive.Programming.with.Swift.v2.0.epub 和 RxSwift.Reactive.Programming.with.Swift.v2.0.pdf 文件提供了书籍的电子版,方便读者随时随地学习。 通过学习这本书,开发者不仅可以掌握...
git clone git@github.com:yokurin/RxSwift-MVVM-iOS.git在Xcode中打开RxSwiftMVVM.xcworkspace 。 跑描述RxSwiftMVVM是使用MVVM架构以RxSwift编写的示例iOS应用。 使用 , , 查看源代码单元测试在制品...Xcode...
RxSwift 最后,我们开始我们仅听说的RxSwift研究。内容工具 :closed_book: 用Swift进行RxSwiftReact式编程作者:Martin Todorov( ) :hammer: Xcode 9或更高版本课程它总共包括5个部分和24个章节。 首先,我打算...
单向数据流为您最喜欢的React框架 介绍 SwiftRex是一个结合了单向数据流架构和React式编程( , 或 )的框架,为应用程序的整个状态提供了中央状态存储,您的SwiftUI Views或UIViewControllers可以观察和响应该状态...
《RxSwift在MVVM架构中的应用深度解析》 RxSwift,作为Swift编程语言中的一个强大的响应式编程库,已经在iOS开发领域中占据了重要的地位。它以其简洁、灵活的特性,为开发者提供了处理异步事件流的新方式。在MVVM...
RxSwift合并备忘单 这是一份对苹果新的框架感兴趣的开发人员的。 它基于以下博客文章: : RxSwift 结合 部署目标 iOS 8.0以上 iOS 13.0以上 支持平台 iOS,macOS,tvOS,watchOS,Linux 适用于Mac的iOS,macOS,...
RxSwift-MVVM-PoP 我使用RxSwift在MVVM上以协议为导向的方法ViewModelType这将是“最终的” ViewModelType protocol RxViewModelType { // setting up the structs as typealiases typealias Input = ...
总之,"iOS-RxSwift-KVO、UI控件、手势、通知、定时器、网络请求的使用-Demo"这个项目旨在展示如何在实践中运用RxSwift进行全方面的功能开发,帮助开发者掌握函数响应式编程在iOS开发中的应用。通过学习和实践这个...
git clone git@github.com:yokurin/RxSwift-VIPER-iOS.git在Xcode中打开RxSwiftVIPER.xcworkspace 。 跑描述RxSwiftVIPER不是严格的架构。 该项目的一部分是一种独特的方式。 这只是一个建议。 使用 , , 查看源...
具有RxSwift的RxMVC模型-视图-控制器模式。 文档,请参见Wiki模式-视图-控制器RxMVC支持使用RxSwift实现模型-视图-控制器模式,如下所示:(来自维基百科)不是txxxRxRxMVC使用RxSwift的模型-视图-控制器模式。 文档...
Leverage the power of RxSwift in your reactive apps! In this RxSwift book, you'll learn how to integrate RxSwift into real-world iOS apps.
- **Observables**:观察者,是RxSwift中最核心的概念之一。它定义了一个接口,该接口能够发出数据项或通知(完成或错误)。在RxSwift中,`Observable`类代表了一个可观察的对象,它可以发射一系列的数据或错误,...