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