Fazendo下载快速格式的图像

最新图片或Alamofire图片

Olágalerinha。

Dessa vez vim mostrar算法和简单应用可用于下载iOS上的免费图像。

Para quem acompanhou um tempoatráscoloquei em 3 passos como criar uma pokedex。

Criando uma Pokedex com Swift零件:1/3
Instalando o CocoaPods medium.com Criando uma Pokedex com Swift零件:2/3
Consumindo um JSON medium.com Criando uma Pokedex com Swift零件:3/3
Mostrando nossos monstrinhos medium.com

Nessa pokedex temos o列表下载口袋妖怪图片。 Eles foram feitos包含API Alamofire。

Alamofire / Alamofire
Alamofire – Swift github.com中的优雅HTTP网络

Eaí? 请给我perguntar,还可以说是问题吗?

Bom temos alguns,重要的摄影作品,照片收藏,摄影作品集,摄影作品下载,新摄影作品,新的形式内斯·卡雷加门多。

由Isso Vamos Mudar O Carregamento das拍摄的Para Algo Mais Correto e Otimizado,Usando Uma API Chamada AlamofireImage

Alamofire / Alamofire图片
AlamofireImage是Alamofire github.com的图像组件库

O AlamofireImage可实现Vantagens como。

Vantagens

1-扩展了ImageView的 inflar,escalar,arredondar图像

2-缓存图像

3-优先下载图像

4-暂存视像文件的影像

5-下载assíncronode imagens

恩特雷。

编码时间

您可以通过以下方式获得个人资料:复制个人资料,复制个人资料。

Miciano / Pokedex
通过在GitHub上创建一个帐户为Pokedex开发做出贡献。 github.com

comrepositórioclonado e atualizado vamoscomeçarnossas melhorias。

Instalando豆荚

可以使用AlamofireImage编写消息的API,但不可以。 Nesse projeto usamos o CocoaPods,por isso vamos no arquivo Podfile adicionar o pod do AlamofireImage

  #Pokedex的豆荚 
pod'Alamofire','〜> 4.0'
pod'AlamofireImage','〜> 3.1'

终端设备,可按要求安装面食和可可豆荚

Build( Command + B )的库安装没有库文件的特性。

编辑和请求

Depois abra o arquivo RequestPokedex ,没有本地onestestãoseus 进口 adicione a seguinte linha。

 导入AlamofireImage 

初始声明中进行分类,请在初始状态下进行初始化

  Alamofire.DataRequest.addAcceptableImageContentTypes([[“ image / jpg”,“ image / png”,“ image / jpeg”]) 

一个初始格式的函数。

 在里面() { 
Alamofire.DataRequest.addAcceptableImageContentTypes([[“ image / jpg”,“ image / png”,“ image / jpeg”])
}

Essa linha que adicionamos no init diz quais contentTypes类型下载。

Vamos修改了一个funçãogetImagePokemon。

可以在UIImageView中扩展AlamofireImage和uma UIImageView的基本功能。

 让imgView = UIImageView() 

一个可请求的AlamofireImage pede uma url和一个URL的 字符串 ,由isso vamos criar nosso objeto URL组成

 守护让urlRequest = URL(string:url)else {return} 

Agoraestána hora de chamar o请求使用一个有趣的af_setImage

  imgView.af_setImage(withURL:urlRequest,placeholderImage:nil,过滤器:nil,进度:nil,progressQueue:DispatchQueue.main,imageTransition:UIImageView.ImageTransition.noTransition,runImageTransitionIfCached:true){(响应}在} 

有趣的是,雷莫的影像来自科莫雷托尔诺,法尔塔· 法泽尔 ·帕拉尔则是不存在法索·法 ·德· 法拉图或克洛索乌尔· ·德· 克罗索乌尔 ·弗拉索的影像。

 切换response.result { 
case .success(让值):
//一个variavel'value'值不包含任何UIImage
完成(.success(model:value))
案例。失败(让错误):
让errorCode = error._code
如果errorCode == -999 || errorCode == 0 {
让erro = ServerError(描述:response.result.error.debugDescription,errorCode:errorCode)
//强制性的Alamofire取消或下载图片,并通过cas Case回应novo chamado'downloadCanceled
完成(.downloadCanceled(描述:错误))
}
}

在下载内容类型或Alamofire吊舱取消器的问题时,请取消已下载的,已添加图像的文件 ,已关闭的请求。

编辑响应

Abra o arquivo chamado PokedexResponse和无ImageResponse

成功的奖杯模型可以成功地用 UIImage进行案例下载 。 O模型ficaráassim。

 枚举ImageResponse { 
成功案例(型号:UIImage)
case serverError(描述:ServerError)
case timeOut(描述:ServerError)
案例noConnection(描述:ServerError)
案例downloadCanceled(描述:ServerError)
大小写无效
}

编辑一个ViewController

可以使用PokedexViewController进行配置 ,可以像各种变量一样轻松地处理图像上的任何口袋妖怪

  var imagePokemons = [UIImage]() 

Vamos adicionar o case do que criamos没有响应,请稍后重载loadImagePokemon

Caso caia没有案例下载取消vamos pedir para ele可执行文件的功能。

 案例.downloadCanceled(_): 
self.loadImagePokemon(URL:网址)

编辑并编辑TableViewCell

Falta a ultima parte,queéfazer a celula receber a imagem e exibi-la,isso vai ser a parte mais simple

删除一个PokemonViewCell ,并使用configureCell

最终数据UIImage参数

没有即时消息,也没有任何数据 。imageView vamos替代了linha para和linha abaixo。

  self.imgView.image =图片 

一个完整的功能完整的形式。

 公共函数configureCell(withModel模型:PokemonModel,pokemonSprite image:UIImage){ 
self.pokemonIdLb.text =“#\(model.id)”
self.pokemonNameLb.text =模型名称
self.imgView.image =图片
}

Pronto,modupamos tudo que agenecessário,pode dar um Run( Command + R )e veja为carregarem lindamente na pokedex成像。

Todo ocódigocriado nesse artigoestáno GitHub desse projeto passado anteriormente,porm em um 分支 chamado AlamofireImage

Miciano / Pokedex
通过在GitHub上创建一个帐户为Pokedex开发做出贡献。 github.com