首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ReactiveKit将本地镜像绑定到镜像视图?

如何使用ReactiveKit将本地镜像绑定到镜像视图?
EN

Stack Overflow用户
提问于 2016-04-02 15:45:08
回答 1查看 271关注 0票数 0

为了从服务器获取图像,我这样做了

代码语言:javascript
复制
// fetch image from server
    func fetchImage(url: NSURL) -> Operation<UIImage, NSError> {
        return Operation { observer in

            // use almofire to deal with server request
            let request = Alamofire.request(.GET, url).response { request, response, data, error in

                // if error occurs then abort the operation
                if let error = error {
                    observer.failure(error)
                } else {
                    // if doesnt occurs error then convert imageData back to image
                    if(data != nil)
                    {
                        observer.next(UIImage(data : data!)!)
                        observer.success()
                    }
                }
            }

            // if response is nil then execute this block
            return BlockDisposable {
                request.cancel()
            }
        }

    }

然后将其绑定到图像视图(&T)

代码语言:javascript
复制
if (url != nil)
        {
            let image : ObservableBuffer<UIImage>? = self.fetchImage(url!).shareNext()

            if ((image) != nil)
            {

                image!.bindTo(customCellObj.mContentCellImageView)
            }
        }

这里我使用almofire从url获取图片。有没有办法可以使用reactive kit直接将本地DB镜像绑定到镜像视图?

EN

回答 1

Stack Overflow用户

发布于 2016-10-10 00:32:01

下面是如何将imageView连接到您的流:

代码语言:javascript
复制
    Stream.just(NSURL(string: "https://exoticcars.enterprise.com/etc/designs/exotics/clientlibs/dist/img/homepage/Homepage-Hero-Car.png")!)
        .flatMapLatest(fetchImage)
        .flatMapError { _ in return Stream.just(UIImage()) }
        .observeNext { [weak self] image in self?.imageView.image = image }
        .disposeIn(bag)

然而,冒着听起来过于明显的风险...这就是ReactiveUIKit的作用。

代码语言:javascript
复制
    Stream.just(NSURL(string: "https://exoticcars.enterprise.com/etc/designs/exotics/clientlibs/dist/img/homepage/Homepage-Hero-Car.png")!)
        .flatMapLatest(fetchImage)
        .flatMapError { _ in return Stream.just(UIImage()) }
        .bindTo(imageView.rImage)
        .disposeIn(bag)

此外,还有一个ReactiveKit的Alamofire扩展(AlamofireReactive),您可能会发现它很有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36370632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档