我有一个UIView,LineDrawingView的自定义子类。我把它作为@property在我的主视图控制器中,并将其添加到视图中。这工作正常 - 它在当前视图的顶部创建一个透明的视图,并使用UIBezierPath,touchesBegan,touchesMoved等,以便您可以通过拖动手指四处绘制所有视图。如何删除或禁用UIView的一部分?
我需要使该图形视图“L”形,所以可具有在左下角,其中各种控制位于的区域。我可以想象没有办法使绘图视图呈“L”形,除了可能添加两个单独的矩形绘图视图,但这不起作用,因为当您将手指从一个矩形拖入另一个矩形时,会触发中断。我提出的另一个解决方案是在绘图视图的顶部添加另一个视图。这个视图应该防止绘图,我也可以找到我的控件,使它们在启用绘图时仍然可用。
我试图创建一个UIView并将其添加如附图视图的子视图。我给了它一个色调,所以我可以检查它存在,并在正确的地方。我期望这样做可以防止在新的UIView的区域内绘图,但绘图仍然遍布LineDrawingView的整个区域。我也尝试在索引2处插入新的UIView,在索引1处插入LineDrawingView。它仍然不影响绘图。
self.drawView = [[LineDrawingView alloc] initWithFrame:CGRectMake(0, 50, 768, 905)];
[self.drawView setBackgroundColor:[UIColor clearColor]];
// not effective in preventing drawing!!
UIView *controlView = [[UIView alloc] initWithFrame:CGRectMake(0, 530, 310, 575)];
[controlView setUserInteractionEnabled:NO];
[controlView setBackgroundColor:[UIColor grayColor]];
[controlView setAlpha:0.3];
[self.view addSubview:drawView];
[self.drawView addSubview:controlView];
我很想知道:我怎么能要么...
创建一个 “L” 形拉丝看法? OR 剪出图纸视图,以便用户可以与背后是什么互动的一部分? OR 在图纸视图在那里我可以禁用绘图,并添加我的控件的顶部强加一个区域?
谢谢 - 好主意,但不幸的是它不起作用。我不知道在教程发布后的几年中发生了什么变化,但是在实现那里显示的内容后,我没有得到期望的效果。我没有在圆角上获得透明度,当我将RoundedRect视图的填充颜色设置为clearColor时,它只是变成黑色 - 您看不到它下面的任何东西。我将这个RoundedRect视图添加为我的主视图的子视图。我甚至没有尝试过使用任何绘图代码。 – beev 2012-01-05 18:29:30