Estou um pouco perdido. Eu usei a propriedade de camada do UIView para arredondar os cantos de vários elementos no meu aplicativo. No entanto, este UIImageView simplesmente não está em conformidade. Não tenho certeza do que estou perdendo.
O UIImageView (chamado previewImage) está contido em uma célula de exibição de tabela. Eu tentei configurar a propriedade cornerRadius em vários locais (na própria célula e no controlador que cria a célula) sem sucesso.
static NSString *CellIdentifier = @"MyTableViewCell";
MyTableViewCell *cell = (MyTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:CellIdentifier owner:self options:nil];
cell = [topLevelObjects objectAtIndex:0];
cell.previewImage.layer.cornerRadius = 20; //Made it 20 to make sure it's obvious.
}
Há algo sobre o modo como as células são carregadas que eu estou perdendo?
iphone
ios
uiimageview
rounded-corners
MarkPowell
fonte
fonte
shouldRasterize = false
?Também vale a pena notar que
ou seja, se você tem isso
e
ou
Isso não vai funcionar . você terá que se livrar do código aspectFit
fonte
Isso deve funcionar
fonte
clipsToBounds
é um método na classe posterior. Acredite que émasksToBounds
como acima.Eu acredito que você precisa definir:
fonte
No Xcode Interface Builder, selecionar o atributo de desenho 'Clip Subviews' para a visualização, juntamente com a definição do raio do canto no código,
cell.previewImage.layer.cornerRadius = 20;
faz o trabalho para mim!Consulte a opção 'Clip Subviews' no IB
fonte
Experimente este trecho de código abaixo
fonte
Experimente este código: -
fonte
Para
imageView.contentMode = .scaleAspectFill
ocornerRadius
não é aplicado se a imagem é muito grande, dependendo do hardware.Alguns testes com imagens panorâmicas redimensionadas:
As dimensões do imageView são 160x100. Curiosamente, o hardware mais recente não é necessariamente mais capaz.
Sinta-se livre para editar esta postagem com mais resultados de teste!
fonte
fonte
Resposta rápida 4.2:
Para que o raio do canto funcione, adicione a imagem a
UIView
e, em seguida, você precisa definir amasksToBounds
propriedade da imagem paratrue
:Nota: Substitua 20 pelo desejado
cornerRadius
fonte
Nada das respostas anteriores está funcionando?
Pode acontecer que o tamanho do UIImageView seja maior que o tamanho da imagem. O raio do canto pode ser definido bem, mas não visível nesse caso.
Verificação rápida do tamanho de UIImageView por código: (ou pode usar a ferramenta "Exibir hierarquia da interface do usuário" no XCode)
Nesse cenário, você deve garantir que o UIImageView tenha a mesma proporção da imagem.
fonte