Como o suporte a vetores funciona no Xcode 6?
Quando tento redimensionar uma imagem, ela parece irregular, o que dá?
fonte
Como o suporte a vetores funciona no Xcode 6?
Quando tento redimensionar uma imagem, ela parece irregular, o que dá?
Agora você pode se referir à sua imagem pelo nome, assim como faria com qualquer arquivo .png .
UIImage(named: "myImage")
O suporte a vetores é confuso no Xcode, porque quando a maioria das pessoas pensa em vetores, elas pensam em imagens que podem aumentar e diminuir a escala e ainda parecerem boas. No entanto, o Xcode 6 e 7 não tem suporte completo para vetores para iOS, portanto, as coisas funcionam de maneira um pouco diferente.
O sistema vetorial é realmente simples . Leva a sua .pdf
imagem, e cria @1x.png
, @2x.png
e @3x.png
ativos em tempo de compilação . (Você pode usar uma ferramenta para examinar o conteúdo de Assets.car para verificar isso.)
Por exemplo, suponha que você receba foo.pdf
um ativo vetorial de 44x44. No momento da construção, ele gera os seguintes arquivos:
[email protected]
em 44x44[email protected]
em 88x88[email protected]
em 132x132Isso funciona da mesma forma para qualquer imagem de tamanho. Por exemplo, se você possui bar.pdf
100 x 100, receberá:
[email protected]
em 100x100[email protected]
em 200x200[email protected]
em 300 x 300
resizableImageWithCapInsets:
e dividindo seus valores fatia por[UIScreen mainScreen].scale
CGFloat scale = [UIScreen mainScreen].scale; UIImage *image = [[UIImage imageNamed:@"my_unsliced_asset"] resizableImageWithCapInsets:UIEdgeInsetsMake(10 * scale, 11 * scale, 12 * scale, 13 * scale)];
No Xcode 8, você ainda pode adicionar um pdf, criar um novo conjunto de imagens e, no Inspetor de atributos, definir a opção Escalas para escala única.
fonte
Este é um complemento à excelente resposta de @Senseful.
Como criar imagens vetoriais no formato .pdf
Vou dizer como fazer isso no Inkscape, pois é gratuito e de código aberto, mas outros programas devem ser semelhantes.
No Inkscape:
Notas:
Se você já possui uma imagem .svg com o tamanho de página errado, faça o seguinte:
Para converter um arquivo .svg em um .pdf, você também pode encontrar utilitários online para fazer o trabalho por você. Aqui está um exemplo de esta resposta . Isso tem o benefício de permitir que você defina o tamanho .pdf facilmente.
Leitura adicional
fonte
Para quem ainda não atualizou, houve alterações no Xcode 9 (iOS 11).
O que há de novo no Cocoa Touch (WWDC 2017 Session 201) (@ 32: 55) https://developer.apple.com/videos/play/wwdc2017/201/
Em poucas palavras, o Catálogo de ativos agora inclui a nova caixa de seleção no Inspetor de atributos denominada "Preservar dados vetoriais". Quando marcado, os dados em PDF serão incluídos no binário compilado, aumentando seu tamanho, é claro. Mas isso permite ao iOS dimensionar os dados vetoriais em ambas as direções e fornecer imagens agradáveis (com suas próprias dificuldades). Para iOS abaixo de 11, os mecanismos de escala antigos descritos nas respostas para cima são usados.
fonte
Você pode usar arquivos PDF normais dentro do seu projeto como imagens vetoriais e renderizar imagens de qualquer tamanho usando esta extensão. Dessa maneira, é muito melhor porque o iOS não gera imagens .PNG a partir de seus arquivos PDF, além de você poder renderizá-las com o tamanho que desejar:
fonte