想要在圆圈中显示图像是可能的以及如何

时间:2012-08-29 08:07:11

标签: iphone objective-c ios uiimageview

嗨我想在圆圈中显示不在矩形中的图像,所有这些都将显示在tableview中 show image like that in tableview cell

5 个答案:

答案 0 :(得分:8)

您必须#import <QuartzCore/QuartzCore.h>并为您的imageView添加cornerRadius [yourImageView.layer setCornerRadius:yourImageView.frame.size.width/2]也许您必须添加[yourImageView setClipsToBounds:YES],但我不确定这一点。

答案 1 :(得分:0)

这样做的一种方法是创建NSView的子类。

然后在你覆盖drawrect:方法来进行自定义绘图。首先,在定义的框架中绘制图像。之后,您可以在同一帧中绘制中间带有透明圆的矩形图像,或使用NSBezierPath构建类似的矩形。

此矩形的颜色(中间的透明圆圈除外)与封闭视图的背景颜色相同。

答案 2 :(得分:0)

或者您可以使用-drawRect方法:

- (void)drawRect:(CGRect)rect
{
    CGRect aRectangle = CGRectMake(0.0f, 0.0f, 40.0f, 40.0f); //size of image frame
    UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:aRectangle];
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSaveGState(context);
    UIColor *imageColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yourImage.png"]];
    [imageColor setFill];
    [path fill];
}

首先,您需要创建自己的继承自UIView的类(例如)并将此代码放入drawRect

答案 3 :(得分:0)

将图像创建为PNG并添加透明层。选择圆周围的区域并使其透明。然后,当图像加载到UIImageView中时,它将显示为一个圆圈。

例如:

table view with two rows and circle images

答案 4 :(得分:0)

替代方法是使用CICircularWrap。它将图像包裹在透明圆圈周围。

例如:

enter image description here

然后你可以使用 UIImageView的图层setCornerRadius 来完善圆形图像