小编chr*_*low的帖子

UIActivityViewController和UIDocumentInteractionController

如何组合UIActivityViewController和UIDocumentInteractionController?Mail应用程序和Tumblr应用程序似乎使用UIDocumentInteractionController来编译UIActivityViewController,因为它们的控制器还显示除了UIActivities之外的"Open in"按钮.我怎么能做到这一点?

cocoa-touch sharing ios uiactivity uiactivityviewcontroller

7
推荐指数
1
解决办法
1413
查看次数

当UITextField以编程方式更新时,RxSwift - UILabel字段未更新

我只是在学习RxSwift并有一个简单的例子,我不确定它为什么不起作用.我有一个文本字段和一个标签字段.任何时候文本字段都会改变,我希望更新标签字段.如果我输入文本字段,一切都按预期工作.如果我以编程方式设置文本字段,例如当我按下按钮并显式设置文本字段时,标签字段不会更新.

import UIKit
import RxSwift
import RxCocoa

class ViewController: UIViewController {
  @IBOutlet weak var myTextField: UITextField!
  @IBOutlet weak var myLabel: UILabel!

  override func viewDidLoad() {
    super.viewDidLoad()
    myTextField.rx_text.bindTo(myLabel.rx_text)
  }

  @IBAction func pBtn(sender: UIButton) {
    myTextField.text = "45"
  }
}
Run Code Online (Sandbox Code Playgroud)

如何更新标签字段?我看了很多例子,但似乎找不到回答这个问题的例子.

ios swift rx-swift

7
推荐指数
1
解决办法
3227
查看次数

如何在RxSwift中观察数组属性的变化

这是我的班级:

class ViewController: UIViewController {
   var myArray : NSArray!
} 
Run Code Online (Sandbox Code Playgroud)

我想每次myArray指向一个新数组时触发一个事件,如下所示:

self.myArray = ["a"]

self.myArray = ["b"]
Run Code Online (Sandbox Code Playgroud)

我试过rx_observe但失败了,这是我的代码:

self.rx_observe(NSArray.self, "myArray").subscribeNext { (array) -> Void in
   print(array)
}
Run Code Online (Sandbox Code Playgroud)

它只是第一次发射,有什么问题?

key-value-observing swift rx-swift

7
推荐指数
1
解决办法
8677
查看次数

如何在PDFView中禁用选择?

显示PDFDocument在一个PDFView允许用户选择文档的一部分,并与选择执行的操作,例如“复制”。如何在PDFView中禁用选择,同时保留用户放大和缩小以及滚动PDF的可能性?

PDFView本身似乎不提供这样的属性,也不提供PDFViewDelegate

pdfkit pdfview ios swift

7
推荐指数
1
解决办法
1014
查看次数

如何使用RxSwift更新UITableViewCell?

我在演示中学习了一个例子来创建一个UITableView并渲染单元格.

在我看来,items是viewModel,我想通过使用Alamofire或其他库来请求跨网络的一些数据.当我收到回复时,如何更新相关单元格的文本?

换句话说,我想将viewModel绑定到Cells.当模型的数据发生变化时,单元格的内容可能会自动更改.

我有一个想法是:为单元格的内容创建一个Observable序列(绑定到单元格).当服务器响应数据时,它调用函数tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top).但这似乎不是一种优雅或好的方法.

所以,希望有些人可以帮助我:)

let items = Observable.just([
            "First Item",
            "Second Item",
            "Third Item"
        ])

    items
        .bindTo(tableView.rx_itemsWithCellIdentifier("Cell", cellType: UITableViewCell.self)) { (row, element, cell) in
            cell.textLabel?.text = "\(element) @ row \(row)"
            /* to do some binding or something else ? */
        }
        .addDisposableTo(disposeBag)


    tableView
        .rx_modelSelected(String)
        .subscribeNext { value in
            DefaultWireframe.presentAlert("Tapped `\(value)`")
        }
        .addDisposableTo(disposeBag)
Run Code Online (Sandbox Code Playgroud)

reactive-programming ios swift rx-swift

6
推荐指数
2
解决办法
5968
查看次数

使用Rxswift绑定两个UIview fram/Position

我想在view1位置改变时自动改变view2位置,并使用Rxswift绑定两个视图位置.

我试着用它来观察视图框架/位置

view.rx.observe(CGRect.self,"frame")
        .subscribe(onNext: {
            print($0 ?? (0,0))
        })
Run Code Online (Sandbox Code Playgroud)

在初始化时打印帧,但在使用约束更改视图位置时

self.constraintHorizontalCenterView.constant = 1000
Run Code Online (Sandbox Code Playgroud)

它没有打印意味着这段代码没有观察到视图位置......

有没有办法观察连续观察位置或绑定视图位置?

uiview ios swift rx-swift rx-cocoa

5
推荐指数
1
解决办法
837
查看次数

我可以从rxSwift map-Function中引发错误

我可以从地图函数中引发错误,还是需要使用flatMap?应该将错误报告给onError.在RxJava中,我可以简单地抛出异常.如何执行以下(伪)代码

observable.map( value -> {if (value.isIllegal) raiseError else return value.count})
Run Code Online (Sandbox Code Playgroud)

显然可以使用flatMap,但我正在寻找一个地图解决方案.

swift rx-swift

5
推荐指数
1
解决办法
3311
查看次数

'SingleEvent<_>' 中的成员 'success' 产生类型为 'SingleEvent<Element>' 的结果

有人可以解释这里的错误是什么吗?

Member 'success' in 'SingleEvent<_>' produces result of type 'SingleEvent<Element>', but context expects 'SingleEvent<_>'
Run Code Online (Sandbox Code Playgroud)

如果结果案例是 .success 我想在单个事件中传递 JSON

在此处输入图片说明

这是完整的代码

import Foundation
import RxSwift

public class APIClient<T: APIProtocol> {
    var disposeBag: DisposeBag = DisposeBag()
}

extension APIClient {
    public func get<U>(apiService: T, key: String) -> Single<U> {
        return Single.create { single in

            let task = TaskRequestManager.run(apiService, completion: { result in
                DispatchQueue.main.async {
                    switch result {

                    case .error(let error):
                        single(.error(error))
                    case .success(let json):

                        guard let JSON = json[key] as? [String: Any] else …
Run Code Online (Sandbox Code Playgroud)

ios swift rx-swift

5
推荐指数
1
解决办法
3051
查看次数

RxSwift 观察数组的变化

假设我们有 InvoiceDataModel 数组

private let invoices Variable<[InvoiceDataModel]> = Variable([])

class InvoiceDataModel { 
    let id: Variable<Int>
    var entity: Variable<InvoiceDto>
    var isSelected: Variable<Bool> 
}
Run Code Online (Sandbox Code Playgroud)

点击复选框时,我正在更改 isSelected 的值。我想要实现的是对 isSelect 更改做出反应:

  • 计算所选项目的总金额(每个实体有var amount: Double
  • 检测是否选择了集合中的所有项目

是否可以观察整个数组并对元素更改中的单个属性做出反应?不知道我应该如何实现这一目标。

也许我对这个案子的处理方法是完全错误的。但是我不确定我应该如何以不同的方式在这里运作。

ios swift rx-swift rx-cocoa

5
推荐指数
1
解决办法
3177
查看次数

RxSwift重复动作

我正在从RAC切换并希望重复网络请求,根据请求的API返回不同的结果类型.

我想使用一个间隔,但我不知道如何匹配返回类型.

var loop: Observable<Element> {
    return Observable<Int>.interval(5.0, scheduler: MainScheduler.instance).map { _ in
        // Do network request and return Observable<Element>
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要使用Int - 类型调用Observerable.interval,但返回Observable.我该怎么办?

swift rx-swift

4
推荐指数
1
解决办法
2927
查看次数