圈框架iOS中的图像

时间:2013-10-28 17:01:32

标签: ios objective-c xcode uiimageview uiimage

我有一个联系人列表的uitableview。我希望将每个联系人的图像放在圆圈框架中,就像在小牛队的登录屏幕中一样。有关如何在uitableviewCell中执行此操作的任何建议吗?

enter image description here

2 个答案:

答案 0 :(得分:76)

我认为你的Cell中有你的imageView,所以你刚刚要做的就是使用一个看不见的边框。使用此代码可以实现此效果:

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

您的UIImageView必须具有相同的高度和宽度,您还必须在项目中导入quartzCore框架

答案 1 :(得分:1)

显然我可以像这样做一个圆形的矩形

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