Swift 中使用SDWebImage

2023-05-16

SDWebImage是开发中常用的插件,主要用于加载外部图片,具有缓存图片资源的功能,然而SDWebImage是由Object-C所写。

步骤:

  1. 下载SDWebImage , https://github.com/rs/SDWebImage
  2. 4.0版本还需要下载FLAnimatedImage, https://github.com/Flipboard/FLAnimatedImage
  3. 将上面两个库中的源码加到你自己的项目中,如图
  4. 添加一个Object-c和swift的桥接,新建一个头文件,名叫SDWebImage+Header.h ,添加SDWebImage头文件的引用,

    #ifndef SDWebImage_Header_h

    #define SDWebImage_Header_h

    #endif /* SDWebImage_Header_h */

    #import "UIImageView+WebCache.h"

  • 添加bridging header
  • Other Link flags处添加 -ObjC
  • 使用代码如下
     let imageURL = URL.init(string: "http://www.szplanner.com/images/inside/product_activity_thumb.jpg")
            
    SDWebImageManager.shared().loadImage(with: imageURL, options: SDWebImageOptions.highPriority, progress: {(receivedSize:Int,expectedSize:Int,targetURL:URL?)->Void in
                
           let pro = Float(receivedSize)/Float(expectedSize)*100
           print("进度..\(pro)%")
                
     }, completed: { ( image:UIImage?,data:Data?, error:Error? ,cacheType:SDImageCacheType, finished:Bool,url:URL?) -> Void in
                
          if let img = image {
               self.imgView = UIImageView(image: img)
               self.view.addSubview(self.imgView)
          }
    })



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift 中使用SDWebImage 的相关文章

  • 从 UIButton 调用类外部的函数

    我有一个函数 我想在按下按钮时调用它 但与我迄今为止所做的任何事情不同 我希望能够从多个 ViewController 中的任何一个访问它 我不想在每个 ViewController 中重复相同的代码块 我尝试在 ViewControlle
  • Swift - 如何隐藏导航项中的后退按钮?

    现在我有两个视图控制器 我的问题是我不知道如何在转换到第二个视图控制器后隐藏后退按钮 我发现的大多数参考资料都是 Objective C 的 我如何用 Swift 编写它 Objective C 中隐藏后退按钮代码 self navigat
  • iOS 使用presentModalSegue 将数据从viewController2 传递回viewController 1

    我有 viewController1 可以对我的 viewController2 进行模态转场 但是 viewController2 嵌入在导航控制器上 因为我需要那里的导航栏 我已经实现了一个协议 将数据从 viewController2
  • 用于通过 Apple 登录的自定义圆形按钮

    我遵循 Apple 的指南来实施 使用 Apple 登录 按钮 苹果在文档中表示 也可以仅使用徽标来创建 使用Apple登录 的自定义按钮 您也可以更改图像的形状以具有圆形按钮 为了能够编辑图像 它还提供插入蒙版 但我不明白我们必须为按钮或
  • 无法读取未定义的属性“messageHandlers”

    我想将 JavaScript 变量传递给 Swift 我在 JavaScript 中遇到错误并进行了搜索 但没有得到任何结果 错误是 类型错误 无法读取未定义的属性 messageHandlers 任何人都可以帮忙吗 我在 Xcode 中的
  • SpriteKit 中的攻击按钮

    我对 Xcode 有点陌生 一直在为我的班级制作 2d 游戏 我已经有一段时间遇到按钮问题了 我刚刚找到了为什么我的跳跃按钮不起作用的解决方案 但我还有一个攻击按钮 我设置了代码 使按钮显示在屏幕上并在按下时更改其图像 但是 我不知道要放入
  • 扩展中的 Swift 'open' 关键字和可重写方法/属性?

    随着介绍openSwift 3 0 中的关键字 Swift 中的 open 关键字是什么 https stackoverflow com questions 38947101 what is the open keyword in swif
  • SwiftUI withAnimation 完成回调

    我有一个基于某种状态的 swiftUI 动画 withAnimation linear duration 0 1 self someState newState 上述动画完成时是否会触发任何回调 如果有关于如何在 SwiftUI 中使用完成
  • Swift 2:IBOutlet 集合 [UIButton]!内存泄漏

    最近在我的应用程序中 我发现我的 UIButton 出口集合正在泄漏内存 我所拥有的只是 IBOutlet var TabBarButtons UIButton And from Instrument 谁能告诉我出了什么问题吗 随着时间的推
  • 在 Swift 中枚举多个具有相同值的情况

    在 C 中 你可以让你的枚举具有以下内容 typedef enum Bar A 0 B 0 C 1 Bar 在 Swift 中我想做等价的事情 然而 编译器抱怨它不是唯一的 我如何告诉它我希望两个案例具有相同的值 enum Bar Int
  • 如何测试包含应用程序是否授予“允许完全访问”权限?

    我正在开发一个键盘扩展项目 在应用程序代码的某些点 我需要测试用户是否已授予键盘扩展的 允许完全访问 权限 协议是我需要从应用程序端进行这些测试 并在此基础上让用户访问键盘设置或在未授予权限的情况下提醒他 问题是这里提供的方法如下 func
  • 在 Swift 3 中从 UUID 获取数据

    我用 Objective C 编写了以下代码 我试图在 Swift 3 中使用它 一些等效函数似乎在 Swift 3 中不可用 下面的代码是 Objective C 中的代码 NSUUID vendorIdentifier UIDevice
  • 在两个应用程序之间通过 url 方案快速传递数据?

    有两个测试应用程序称为发送者和接收者 他们通过 UrlScheme 相互通信 我想从发送者发送一个字符串到接收者 这可能吗 关于字符串的详细信息 我都在发送者和接收者中创建文本字段 我会在发送者文本字段上发送一些字符串 当我单击按钮时 字符
  • Swift - 以编程方式刷新约束

    我的 VC 开头为stackView附有Align Bottom to Safe Area 我有 tabBar 但一开始是隐藏的tabBar isHidden true 稍后 当 tabBar 出现时 它会隐藏stackView 所以我需要
  • 发布到 Firebase 时,单元格会重复多次

    我正在制作一个可以发布消息的应用程序 我将数据存储在 Firebase 中 当我发布新消息时 该特定单元格会重复多次 因此我会看到该帖子 2 3 4 次或更多次 但这只是 Firebase 中的一篇文章 当我刷新屏幕 例如对数据进行排序 时
  • UIDocumentBrowser 无法在 iPad 上运行,但在模拟器上运行良好 [iOS、Swift]

    我正在学习如何构建一个document basediOS 中的应用程序 我按照苹果官方的例子 https developer apple com documentation uikit view controllers building a
  • 如何使用 swift flatMap 从数组中过滤掉选项

    我对 flatMap 有点困惑 添加到 Swift 1 2 假设我有一些可选类型的数组 例如 let possibles Int nil 1 2 3 nil nil 4 5 在 Swift 1 1 中 我会做一个过滤器 然后是一个像这样的地
  • 可选函数与抛出函数

    考虑我编写的以下查找函数 该函数使用可选值和可选绑定 如果在字典中找不到键则报告一条消息 func lookUp
  • 错误:将构建上传到 iTunes Connect 时,Swift 支持无效

    我正在提交 TestFlight 发行版的第一个版本 但收到以下错误 位码已关闭 其他答案似乎相当旧 所以我想我会在 2018 年重新询问 无效的 Swift 支持 文件 libswiftDarwin dylib libswiftMetal
  • 由于某种原因,AdColony 的 AdReward 无法在 Swift 2.0 上运行

    我想在我的游戏中实现奖励插页式广告 但我收到了很多 AdColony 错误 例如 未填写广告请求 或我的区域 ID 无效 首先 这就是我配置 AdColony 区域的方式 Zone is active Yes Zone Type Prero

随机推荐

  • Qt项目入门

    一个简单的项目 该项目涉及tcp服务端客户端通信 xff0c 数据库操作 xff0c Log4Qt日志打印 xff0c 不过是关于工业与上位机的一个简单项目处理 xff0c 过程不一定容易理解 xff0c 附上通讯协议 Qt5 12 Min
  • delete this注意事项

    参考资料 在类中调用delete this问题
  • c++较常用的库函数

    不知道原创是谁 xff0c 转载自 xff1a https blog csdn net laozhuxinlu article details 51878947 C 43 43 常用库函数 如图1所示 xff0c 常用数学函数 头文件 in
  • 学习c++的50个网站

    原 xff1a http blog chinaunix net uid 20548989 id 2979724 html 大家都说学Java好找工作 xff0c 可是Java我都遗忘好久了 xff0c 大一大二荒废了 xff0c 没好好练编
  • 数据预处理-数据清洗之numpy创建及属性

    什么是数据预处理 xff1f 数据预处理 xff08 data preprocessing xff09 是指在主要的处理以前对数据进行的一些处理 一般我们得到的数据会存在有缺失值 重复值等 xff0c 在使用之前需要进行数据预处理 它是一系
  • 数据预处理-数据清洗之numpy访问与计算

    如何访问numpy数组中的元素 xff1f 采用索引或者切片的方式 span class token comment 导入包 span span class token keyword import span numpy span clas
  • Unity Spine 换图(通过外部图片)

    在spine中 xff0c 如果想通过外部一张单独的来替换动画中的某个部位 xff0c 需要手动创建Attachment using UnityEngine using System Collections using Spine Unit
  • stm32 esp8266 ota升级-hex合并-烧录-bin生成

    stm32 esp8266 ota系列文章 xff1a stm32 esp8266 ota 快速搭建web服务器之docker安装openresty stm32 esp8266 ota升级 tcp模拟http stm32 esp8266 o
  • 字符串与字符数组的大小

    验证字符串与字符数组的大小 xff0c 代码如下 xff1a include lt stdio h gt int main 字符串与字符数组的区别 int data 61 1 2 3 4 5 char cdata 61 39 h 39 39
  • 数据预处理-数据清洗之pandas库的简单使用

    创建一个series span class token comment 导入包 span span class token keyword import span numpy span class token keyword as span
  • Minimum Snap轨迹规划详解(1)轨迹规划

    一 轨迹规划是什么 xff1f 在机器人导航过程中 xff0c 如何控制机器人从A点移动到B点 xff0c 通常称之为运动规划 运动规划一般又分为两步 xff1a 1 路径规划 xff1a 在地图 xff08 栅格地图 四 八叉树 RRT地
  • RealsenseD415/D435深度相机常用资料汇总

    1 Realsense SDK 2 0 Ubuntu 16 04 安装指导网址 https github com IntelRealSense librealsense blob master doc distribution linux
  • C++STL详解三:迭代器

    C 43 43 STL详解三 xff1a 迭代器 文章目录 C 43 43 STL详解三 xff1a 迭代器前言一 迭代器是什么二 迭代器的案例 xff1a List迭代器的简化版代码1 简单分析List的储存方式2 List的迭代器 三
  • cpp-httplib库的简介与工作流程

    A C 43 43 11 single file header only cross platform HTTP HTTPS library It s extremely easy to setup Just include the htt
  • audiowrite函数用法(matlab)

    audiowrite函数用法 xff08 matlab xff09 一 xff0c 语法 1 2 audiowrite filename y Fs audiowrite filename y Fs Name Value 二 xff0c 解释
  • 5G协议 基本架构 专有名词简称和缩写

    1 先来两个5G架构图 专有名词解释 xff1a 5GC 5G generation core Network 5G核心网络 NG RAN Next generation radio access network 下一代无线接入网络 AMF
  • 加速度计和陀螺仪互补滤波(转载)

    简单易懂的理解 xff1a 这么说吧 xff0c 加速度计计算出来的角度干扰比较大 xff0c 波形比较杂乱 xff0c 陀螺仪融合出来的波形比较平稳但是存在积分漂移 xff0c 所以二者结合 陀螺仪测量角速度积分的基础上利用加速度计测量的
  • 关于精度、分辨率、LSB的理解

    1 精度 是用来描述物理量的准确程度的 精度有关的有两个很重要的指标 xff1a DNL INL DNL xff1a Differencial NonLiner 微分非线性度INL xff1a Interger NonLiner 积分非线性
  • MPU6050教程(转载)

    如果你想玩四轴 xff0c 想搞什么空中鼠标 xff0c 平衡车等待 xff0c 那么MPU6050真的是太强大了 xff0c 能做很多东西 但是论坛上MPU6050整个教学过程基本上是没有的 xff0c 资源共享 xff0c 不应该只在自
  • Swift 中使用SDWebImage

    SDWebImage是开发中常用的插件 xff0c 主要用于加载外部图片 xff0c 具有缓存图片资源的功能 xff0c 然而SDWebImage是由Object C所写 步骤 xff1a 下载SDWebImage https github