【发布时间】:2014-01-23 07:40:55
【问题描述】:
我知道我想做什么,但我不知道如何实现它。我是 Core Graphics 的新手,我不确定这是否可行。
我有一个这样的 unicode 符号:♖
此符号的白色部分是透明的,我将其绘制成透明矩形,如下所示:
- (void)drawRect:(CGRect)rect
{
NSMutableParagraphStyle *textStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
textStyle.alignment = NSTextAlignmentCenter;
UIFont* myFont = [UIFont fontWithName:@"ArialUnicodeMS" size:80];
NSDictionary *attrs =
@{ NSForegroundColorAttributeName : [UIColor blackColor],
NSFontAttributeName:myFont,
NSParagraphStyleAttributeName:textStyle
};
[[self getStringForValue:_squareValue] drawInRect:rect withAttributes:attrs];
}
我想要的是用白色填充内部透明部分,并使周围的矩形保持透明。
我正在考虑的方法是使用 unicode 符号作为 drawRect 中的掩码将矩形划分为区域。然后不填充从 0,0 开始的区域,而是填充所有其他区域。我可以使用 Core Graphics 将符号转换为遮罩,然后识别和填充特定区域吗?
我现在得到的是:
但我真正想要的是这个:
【问题讨论】:
-
你研究过掩蔽吗?你在正确的路线上。
-
我正在阅读 Apples 文档,我想我会在那里找到方法,但 SO 有时会给出一个快速而肮脏的介绍 ;-)
标签: ios core-graphics mask