我有UIView的子类,最初我的视图将是默认颜色,我需要在触摸时填充一些不同的颜色(从x轴= 0到用户触摸点),这里的问题是touchesMoved即使我拖出我的自我观点界限是获得这些点,如何将其限制为仅用于我的自我视角。
我用google搜索&尝试下面的片段,但没有运气if([self pointInside:point withEvent:nil]){
[self fillColor];
}
我的 touchesMoved 方法如下,
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self];
endPoint = point;
NSLog(@"moved x: %f,y: %f",point.x,point.y);
if(CGRectContainsPoint([self frame], endPoint)){ // this also not working
[self fillColor];
}
}
提前感谢任何帮助。
答案 0 :(得分:0)
在touchesMoved方法中,CGPoint point = [touch locationInView:self];
会在您希望触摸工作的视图中自我复制。
self将获得完整的视图,你应该在那里传递你的drawingView,这样它只会在那个视图上发出触摸。
答案 1 :(得分:0)
只需在viewDidLoad:
方法中设置标记并使用以下逻辑..
fillColorView.tag = 111;
并使用touchesMoved:
方法中的轰鸣声逻辑,如下面的..
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *tap = [touches anyObject];
CGPoint pointToMove = [tap locationInView:fillColorView];
if([tap.view isKindOfClass:[UIView class]])
{
UIView *tempView=(UIView *) tap.view;
if (tempView.tag == 111){
[self fillColor];
}
}
}
希望这能帮到你......