Eu tenho um UIImageView e o objetivo é reduzi-lo proporcionalmente, fornecendo uma altura ou largura.
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
//Add image view
[self.view addSubview:imageView];
//set contentMode to scale aspect to fit
imageView.contentMode = UIViewContentModeScaleAspectFit;
//change width of frame
CGRect frame = imageView.frame;
frame.size.width = 100;
imageView.frame = frame;
A imagem foi redimensionada, mas a posição não está no canto superior esquerdo. Qual é a melhor abordagem para dimensionar image / imageView e como faço para corrigir a posição?
objective-c
cocoa-touch
Ronnie Liew
fonte
fonte
Respostas:
Corrigido facilmente, uma vez que encontrei a documentação!
fonte
ScaleAspectFit
agora é umenum UIViewContentMode
, então você deve definirimageView.contentMode = UIViewContentMode.ScaleAspectFit
. Observe o período.translatesAutoresizingMaskIntoConstraints
não deve ser definido comofalse
. Levei um longo tempo antes de perceber que esta propriedade está impedindo o redimensionamentoComo conversei um pouco sobre tipos de escala, decidi montar um artigo sobre alguns dos tipos de escala de modo de conteúdo mais populares .
A imagem associada está aqui:
fonte
Eu apenas tentei isso e o UIImage não suporta _imageScaledToSize.
Acabei adicionando um método ao UIImage usando uma categoria - uma sugestão que encontrei nos fóruns de desenvolvedores da Apple.
Em um .h de todo o projeto -
Implementação:
fonte
UIGraphicsBeginImageContext(targetSize);
fazer se([UIScreen instancesRespondToSelector:@selector(scale)]) { UIGraphicsBeginImageContextWithOptions(targetSize, NO, 0.0f); } else { UIGraphicsBeginImageContext(targetSize); }
para suportar telas Retina sem torná-lo desfocadasfonte
Você pode tentar fazer o
imageView
tamanho corresponder aoimage
. O código a seguir não foi testado.fonte
pode-se redimensionar uma UIImage dessa maneira
fonte
O código original publicado na parte superior funcionou bem para mim no iOS 4.2.
Descobri que criar um CGRect e especificar todos os valores superior, esquerdo, largura e altura era a maneira mais fácil de ajustar a posição no meu caso, que estava usando um UIImageView dentro de uma célula da tabela. (Ainda é necessário adicionar código para liberar objetos)
fonte
Defina seu ImageView selecionando Modo para
Aspect Fill
e marque aClip Subviews
caixa.fonte
Isso funciona bem para mim Swift 2.x:
fonte
Defina o seu
UIimageview
por escala .........fonte
Para Swift:
fonte
UIImageView + Scale.h:
UIImageView + Scale.m:
fonte
Eu usei o seguinte código.where imageCoverView is UIView segura UIImageView
fonte
Se as soluções propostas aqui não estiverem funcionando para você e seu ativo de imagem for realmente um PDF, observe que o XCode realmente trata os PDFs de maneira diferente dos arquivos de imagem. Em particular, ele não parece escalável para preencher corretamente com um PDF: acaba sendo lado a lado. Isso me deixou louco até eu descobrir que o problema era o formato PDF. Converta em JPG e você deve estar pronto.
fonte
Normalmente, eu uso esse método para meus aplicativos (compatível com Swift 2.x ):
fonte
Eu acho que você pode fazer algo como
fonte
Aqui está como você pode dimensioná-lo facilmente.
Isso funciona na versão 2.x com o simulador e o iPhone.
fonte