Подтвердить что ты не робот

Изображение в рамке круга iOS

У меня есть uitableview со списком контактов. Я хотел бы иметь изображение каждого контакта в рамке круга, как на экране входа в систему mavericks. Любые предложения, как это сделать в uitableviewCell?

enter image description here

4b9b3361

Ответ 1

Я предполагаю, что у вас есть свой imageView внутри вашей ячейки, поэтому то, что у вас есть для этого, имеет тот же эффект, что и невидимая граница. Используйте этот код для создания этого эффекта:

cell.yourImageView.layer.cornerRadius = cell.yourImageView.frame.size.height /2;
cell.yourImageView.layer.masksToBounds = YES;
cell.yourImageView.layer.borderWidth = 0;

Ваш UIImageView должен иметь одинаковую высоту и ширину, также вы должны импортировать фреймворк quartzCore в свой проект

Ответ 2

По-видимому, я могу сделать закругленный прямоугольник, подобный этому

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);

а затем поместите изображение внутрь, оно будет автоматически обрезано:

 CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
addRoundedRectToPath(context, self.frame, 10, 10);
CGContextClip(context);
[image drawInRect:self.frame];
CGContextRestoreGState(context);