首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

iOS - RxSwift 项目实战记录

,它在Moya的基础上添加了对RxSwift的接口支持。...有的话那从今天开始就要认清楚这一点,【tableView其实是由section组成的】,所以在使用RxDataSources的过程,即使你的setion只有一个,那你也得返回一个section的数组出去...input: Input) -> Output } 二、viewModel遵守LXFViewModelType协议 我们可以为XFViewModelType的Input和Output定义别名,以示区分,:...可以看到我为Output添加了一个序列,类型为我们自定义的LXFSection数组,在Input里面添加了一个请求类型(即要请求什么数据,比如首页的数据) 我们通过 transform 方法将input...input,通过transform得到output,然后将我们output的sections序列绑定tableView的items LXFViewController.swift // 初始化input

2.9K41

iOS 9 Storyboard 教程(二下)

. ---- 在PlayerDetailsViewController.swift里,首先在类顶部添加一个属性来存储你添加的玩家的详细信息. var player:Player?...试一下,现在你应该可以列表添加新的玩家了! ?...在PlayerDetailsViewController添加一个初始化方法和一个反初始化方法: required init?...现在让我们给这个新的控制器一些数据来显示吧.在GamePickerViewController.swift,把一个具有硬编码值的games字符串数组添加到顶部: var games:[String]...在PlayerDetailsViewController.swift里,在类的顶部,添加一个属性来保存选中的游戏,那样你就可以在Player对象存储它.给它一个默认的名字”Chess”,那样你就会一个新的玩家始终都会有衣蛾选中的游戏名字

2.2K10

iOS开发遇到的一些小问题记录

1. tableView下方出现莫名的空白 tableFooterView问题 一般来说,tableview默认有一个footerview 解决:在视图加载时将这个footerview设为没有高度或者是空...、而很多其他的功能 诸如支付队列等 是在后台线程运行、主线程是UI阻塞的,而后台线程是非阻塞的,当非阻塞线程的某个函数在循环的时候某个UI发起调用,如果在主线程,这个函数就已经被阻塞了,而后台线程不会...,这时重复UI发起调用,就可能导致指针冲突等意外问题。...解决:在iOS开发,使用delegate方式可以用来解决后台线程调用问题。 实际上这个时候是 UI, 后台线程组件 分开运行在 主线程、后台线程。 后台线程通过delegate主线程发起调用。...基于iOS自带的邮件反馈kit开发用户反馈功能 用Swift写一个发送邮件的iOS用户反馈 - 简书 9.

79210

Swift-MVVM 简单演练(一)

里,重新设置tableView的ContentInsets /* 取消自动缩进,当导航栏遇到`scrollView`的时候,一般都要设置这个属性 默认是`true`,会使`scrollView`向下移动...---- 添加下拉刷新控件 在基类控制器定义下拉刷新控件,这样就不用每个子控制器页面单独设置了 给refreshControl添加监听方法,监听refreshControl的valueChange事件...---- 监听注册和登录按钮的点击事件 在HQVistorView里将两个按钮暴露出来,然后直接在HQBaseViewController添加监听方法即可。...总结 使用代理传递消息是为了在控制器和视图之间解耦,让视图能够被多个控制器复用,TableView 但是,如果视图仅仅是为了封装代码,而从控制器剥离出来的,并且能够确认该视图不会被其它控制器引用,...swift 3.0对闭包做了改变,默认请款下都是非逃逸闭包,不再需要@noescape修饰。

10.2K51

在iOS怎样创建可展开的Table View?(下)

接上篇:在iOS怎样创建可展开的Table View?...真正的原因是因为我选择开始处理cell的类型,我继续在tableView的代理方法里修改,在里面,我将添加一个else来处理没有展开cell的情况,然后我们将检查点击cell的标识符的值.如果标识符等于...响应其他用户操作 在CustomCell.swift文件,你可以发现CustomCellDelegate协议的所需的代理方法都已经被声明.通过在ViewController类里实现它们我们需要设法让app...让我们再一次修改ViewController.swift文件,采用上面的协议.移到类的顶部,添加一个协议,如下: class ViewController: UIViewController, UITableViewDelegate...cell.我们要动态地组成全名,一旦姓和名都输入了.我们需要指定包含文本框的cell的索引.最后我们会在顶级cell更新显示的文本(全名),并且会刷新tableView,如下代码: func textfieldTextWasChanged

1.5K30

窥探Swift之协议(Protocol)和委托代理(Delegate)回调的使用

说到协议,在Objective-C也是有协议的,并且Swift的协议和Objc的协议使用起来也是大同小异的,在Java等现代面向对象编程语言中有接口(Interface)的概念,其实和Swift或者...上面的Cell中就是一个ImageView和一个Label, 布局灰常简单啦,接下来就简单介绍一下在Swift是如何实现(说白了,和Objc实现起来大同小异)。...(1) 首先我们要在视图控制器相应的类添加一个可变数组,用来存放数据,如下所示: 1 private var dataSource:Array<Dictionary<String, String...这个协议可以定义在EditViewController.swift源文件。在协议定义之前,先对什么是协议简单的提上一嘴。...默认方法是必选的,你可以使用optional关键字使方法可选,在此就不做过多赘述了。

3.4K80

RxSwift 与 BLE 实战——VisualBlue

公司的项目正从 OC Swift 迁移,之前蓝牙部分还全是用 OC 写的,各种 delegate 和 notification 满天飞,看着都头疼。...扫描设备的整个流程大致是这样的: 筛选蓝牙状态,将除.PoweredOn之外的状态过滤掉 扫描设备 筛选设备,将已出现过的设备过滤掉 将扫描到的新设备添加到设备列表 用设备列表构建一个dataSource...,并与tableView绑定 将资源添加到disposeBag,以待统一回收处理 这个过程用 Rx 的风格来写大概是这样的: func bindDataSource() { manager.rx_state...(disposeBag) tableView.rx_modelSelected(ScannedPeripheral.self) .asObservable()...discoverCharacteristics(nil) } .toObservable() .switchLatest() } 有空的话我可能还会为这个 demo 再加些内容,譬如加上监听蓝牙通道、设备发送数据等功能

1.1K20
领券