我有一个UIView
,其颜色为黑色,不透明度为0.9或类似的东西。我想要做的是用{1}}填充黑色部分,但指定的矩形区域不应该变黑。即特定的矩形区域保持清晰的颜色......
任何形式的帮助都将受到赞赏。
的问候,
姆兰
答案 0 :(得分:5)
您可以继承UIView
并覆盖- (void)drawRect:(CGRect)rect
并执行以下操作(未经测试,但我自己使用类似的东西);
- (void)drawRect:(CGRect)rect {
// fill the whole UIView with a color
[[UIColor colorWithRed:1 green:1 blue:1 0.9] setFill];
UIRectFill( rect );
// draw a rect
CGRect rectIntersection = CGRectIntersection(theRectIWantToDrawIn, rect);
[[UIColor clearColor] setFill];
UIRectFill( rectIntersection );
}
上面的代码绘制了一个黑色视图,其中某个位置有一个模拟的clearColor孔。当然,你可以根据自己的喜好改变这种行为。
这很快。
更新:请注意我将UIView设置为我要将矩形绘制为UIClear颜色(我将其添加到xib并在那里设置这些属性)并取消选中'Opaque'。这应该让洞透视。
更新2:我的回答是基于这个答案(信用到期的信用额度):iPhone - Draw transparent rectangle on UIView to reveal view beneath
答案 1 :(得分:0)
向该区域添加另一个视图(子视图)。并将其设置为您想要的颜色。这是您当前要求的简单解决方案。 或者你可以使用一些石英核心功能。
答案 2 :(得分:0)
您可以通过自定义设置主视图中的小UIView
并设置背景清晰颜色
UIView *View1 = [[UIView alloc] initWithFrame:CGRectMake(128.0f, 50.0f, 34.0f, 34.0f)];
[View1 setBackgroundColor:[UIColor clearColor]];
[self.view addSubview:View1];
[View1 release];