我创建了 myView,它是 myView 的子类UIView
并在 myView 上画了一个圆圈。现在我想在圆圈内显示小图像,而不是在圆圈外。但我进入了圈内和圈外,这意味着图像显示在整个 myVIew 上。
我得到了如下图所示
但我想得到如下
有没有可能?请帮我。
假设椭圆是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);
}
你可以试试这个:
#import <QuartzCore/QuartzCore.h>
并在您的代码中,制作圆圈后,添加图像并设置这些:
myImageView.layer.cornerRadius = x;
myImageView.layer.masksToBounds = TRUE;
这使您可以在图像上使用圆角。如果你计算半径以匹配你的圆,你应该得到想要的外观。
希望这可以帮助。
干杯,
乔治