改变UIView的一小部分颜色?

Imr*_*ran 2 iphone uiview ios

UIView的颜色是黑色,不透明度是0.9或类似的东西.我想要做的是填充UIView黑色部分,但指定的矩形区域不应该变黑.即特定的矩形区域保持清晰的颜色......

任何形式的帮助将不胜感激.

问候,

伊姆兰

Jak*_*ake 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 );
}
Run Code Online (Sandbox Code Playgroud)

上面的代码在某个位置绘制了一个带有模拟clearColor孔的黑色视图.当然,您可以根据自己的喜好改变这种行为.

这很快.

更新:请注意我将UIView设置为我想要将矩形绘制为UIClear颜色(我将其添加到xib并在那里设置这些属性)并取消选中"不透明".这应该让洞透视.

更新2:我的回答是基于这个答案(信用到期):iPhone - 在UIView上绘制透明矩形以显示下面的视图