Ho uitableview con un elenco di contatti. Mi piacerebbe avere l'immagine di ogni contatto in una cornice circolare come nella schermata di accesso dei mavericks. Qualche suggerimento su come farlo in uitableviewCell?nella cornice circolare iOS
risposta
Presumo che avete la tua imageView all'interno della tua cella, quindi quello che devi fare per avere lo stesso effetto è usare un bordo invisibile. Utilizzare questo codice per rendere questo effetto:
cell.yourImageView.layer.cornerRadius = cell.yourImageView.frame.size.height /2;
cell.yourImageView.layer.masksToBounds = YES;
cell.yourImageView.layer.borderWidth = 0;
tuo UIImageView devono avere la stessa altezza e larghezza anche si deve importare il quadro QuartzCore nel progetto
È possibile impostare queste modifiche nello storyboard? o l'unica soluzione è nel codice? –
soluzione solo codice:/ –
Si prega di considerare le prestazioni quando è in una vista di scorrimento (come uitableview). – ZYiOS
apparentemente posso fare un rettangolo arrotondato come questo
float fw, fh;
if (ovalWidth == 0 || ovalHeight == 0) {
CGContextAddRect(context, rect);
return;
}
CGContextSaveGState(context);
CGContextTranslateCTM (context, CGRectGetMinX(rect), CGRectGetMinY(rect));
CGContextScaleCTM (context, ovalWidth, ovalHeight);
fw = CGRectGetWidth (rect)/ovalWidth;
fh = CGRectGetHeight (rect)/ovalHeight;
CGContextMoveToPoint(context, fw, fh/2);
CGContextAddArcToPoint(context, fw, fh, fw/2, fh, 1);
CGContextAddArcToPoint(context, 0, fh, 0, fh/2, 1);
CGContextAddArcToPoint(context, 0, 0, fw/2, 0, 1);
CGContextAddArcToPoint(context, fw, 0, fw, fh/2, 1);
CGContextClosePath(context);
CGContextRestoreGState(context);
e poi mettere l'immagine all'interno, verrà tagliato automaticamente:
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
addRoundedRectToPath(context, self.frame, 10, 10);
CGContextClip(context);
[image drawInRect:self.frame];
CGContextRestoreGState(context);
se si ruotano tua domanda con la mia risposta accettarlo plz –