Você pode configurar a maneira com que uma imagem local é carregada pelo componente Image fornecendo uma classe que implementa essa lógica.
O protocolo ImageProviderProtocol consiste de apenas um método chamado loadImageProvider(id:) que será utilizado para recuperar uma imagem local.
public protocol ImageProviderProtocol {
func loadImageProvider(id: String) -> UIImage?
}
O método fetchImage recebe um parâmetro:
No Beagle iOS, nós temos uma estrutura chamada ImageProvider que recupera a imagem local usando UIImage(named: id, in: mainBundle)
, onde mainBundle
é o bundle configurado no BeagleDependencies
.
struct ImageProvider: ImageProviderProtocol {
@Injected var mainBundle: BundleProtocol
func loadImageProvider(id: String) -> UIImage? {
return UIImage(named: id, in: self.mainBundle.bundle, compatibleWith: nil)
}
}
Para trocar a classe resonsável por carregar imagens locais no beagle siga os passos abaixo:
ImageImageProviderProtocol
Implemente o ImageImageProviderProtocol
na classe (ou estrutura) que deseja utilizar, neste caso nós criamos uma estrutura CustomImageProvider
que será usada como exemplo:
struct CustomImageProvider: ImageProviderProtocol {
func loadImageProvider(id: String) -> UIImage? {
// sua implementação
}
}
No AppDelegate ou na sua classe de configuração do Beagle, atribua a instância do CustomImageProvider
ao atributo imageProvider
presente no BeagleDependencies
:
let dependencies = BeagleDependencies()
dependencies.imageProvider = CustomImageProvider()
BeagleConfigurator.setup(dependencies: dependencies)
Pronto! O Beagle usará seu imageProvider com as modificações implementadas para recuperar suas imagens locais.
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.