我创建了myView,它是UIView
的子类,并在myView上绘制了一个圆圈。现在我想在圆圈内显示小图像,而不是在圆圈外。但是我进入了圆圈和外圈,意味着图像显示在整个myVIew上。
我喜欢如下图所示
但我希望得到如下
有可能吗?请帮帮我。
答案 0 :(得分:2)
假设椭圆是UIBezierPath
,您可以使用:
UIImage *patternImage = [UIImage imageNamed:@"thePattern.png"];
UIColor *fillPattern = [UIColor colorWithPatternImage:patternImage];
[fillPattern setFill];
[thePath fill];
修改强>
使用模式图像填充由CGContextAddEllipseInRect
创建的椭圆:
- (void)drawRect:(CGRect)rect {
CGImageRef patternImage = [UIImage imageNamed:@"file"].CGImage;
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextAddEllipseInRect(context, CGRectMake(100, 100, 200, 200));
CGContextClip(context);
CGContextDrawTiledImage(context, CGRectMake(20, 20, 48, 36),patternImage);
}
答案 1 :(得分:1)
你可以试试这个:
#import <QuartzCore/QuartzCore.h>
并在您的代码中,制作圆圈后,添加图片并设置以下内容:
myImageView.layer.cornerRadius = x;
myImageView.layer.masksToBounds = TRUE;
这使您可以在图像上使用圆角。如果你计算半径以匹配你的圆圈,你应该得到所需的外观。
希望这有帮助。
干杯,
乔治