我創建了一個自定義UIView,我最終將有10個區域,用戶可以點擊。當一個區域被挖掘時,我想疊加一個低alpha層來表示它們的選擇。CALayer不繪製在自定義UIView的範圍內
不幸的是,當我點擊一個部分時,我創建的CALayer正在繪製在我的自定義視圖的邊界之外。看起來好像我的x和y座標都是關閉的。
這是我的自定義視圖內drawRect方法:
- (void)drawRect:(CGRect)dirtyRect
{
if (touchPoint.x > 0 || touchPoint.y > 0){
CGRect bounds = [self bounds];
float widthOfArea = bounds.size.width/10.0;
float sectionNumber = round(touchPoint.x/widthOfArea);
touchOverlayLayer = [[CALayer alloc] init];
[touchOverlayLayer setBounds:CGRectMake(0.0, 0.0, widthOfArea, bounds.size.height)];
[touchOverlayLayer setPosition:CGPointMake(widthOfArea * sectionNumber, self.bounds.origin.y)];
UIColor *greyish = [UIColor colorWithRed:0.5 green:0.5 blue:0.5 alpha:.5];
CGColorRef cggreyish = [greyish CGColor];
[touchOverlayLayer setBackgroundColor:cggreyish];
[[self layer] addSublayer:touchOverlayLayer];
}
}
而得到的顯示附接。
我應該添加,我可以通過創建一個100x100的矩形和setPostion來簡化它:CGPointMake(0.0,0.0),我得到了非常相似的結果。 –