07 Fev, 2013 20:08

Utilizando imagens redimensionáveis no iOS - Parte 2

Para isso, você vai precisa usar o Interface Builder e editar a imagem direto no XIB. Vamos ao exemplo.

Suponha que eu tenha a imagem abaixo e quero usá-la como fundo de diversos elementos na tela.

Imagem original

Devo importá-la no meu projeto, adicionar uma UIImageView no meu XIB e definir a imagem na propriedade image. Vejamos o que acontece se colocarmos a UIImageView com dimensões diferentes da imagem original.

Imagem no XIB

Repare que a imagem fica distorcida por causa do tamanho incompatível com o formato original da imagem.

Para resolvermos o problema, precisamos editar os valores de Stretching da UIImageView de acordo com a nossa necessidade. Esses valores variam de 0 a 1 e representam o percentual da área redimensionável em relação à área total. Esses valores estão associados à propriedade contentStretch que descrevi no post anterior.

O primeiro passo é calcular a área da imagem que deve ser redimensionada. Para isso, precisamos saber o tamanho da imagem total (W x H), a origem da área redimensionável da imagem (x, y) e as dimensões dessa área (w x h). Veja a ilustração abaixo (a área marcada em vermelho representa a área que queremos redimensionar).

Medidas da área redimensionável

Com esses valores, conseguimos definir os valores de Stretching com as fórmulas abaixo:

Sx = x/W
Sy = y/H
Sw = w/W
Sh = h/H

Fazendo as contas, temos:

Sx = 0,17
Sy = 0,026
Sw = 0,468
Sh = 0,919

Preenchendo esses valores no Interface Builder, a imagem ficará como o esperado.

Imagem final redimensionada

Limitações

Infelizmente, o truque acima não funciona com UIButtons e a solução nesse caso é via código, como havia explicado no post anterior.

Ao navegar neste site, você consente o uso de cookies nossos e de terceiros, que coletam informações anônimas e são essenciais para melhorar sua experiência em nosso site.