我有两个图像,一个网球和一个红色标记图像。我需要将网球作为背景,并将红色标记作为前景,如网球上方的一层,我需要根据网球的形状调整红色标记。我必须通过捏和触摸操作来实现这一点。用圆形图像图层标记球 - 在iphone touch中缩放或移动
下面是两张图片。
图1:
图像2(层):
最终图像通过调整圆:
对此的任何首发将是好!
我有两个图像,一个网球和一个红色标记图像。我需要将网球作为背景,并将红色标记作为前景,如网球上方的一层,我需要根据网球的形状调整红色标记。我必须通过捏和触摸操作来实现这一点。用圆形图像图层标记球 - 在iphone touch中缩放或移动
下面是两张图片。
图1:
图像2(层):
最终图像通过调整圆:
对此的任何首发将是好!
有两种方法可以做到这一点(处理用户触摸):
touchesBegan:withEvent:
,touchesMoved:withEvent:
和touchesEnded:withEvent:
方法。参考在这里:UIResponder - Responding to Touch Events。
手势识别器(使用标准手势识别器或创建自己的自定义手势识别器)。参考在这里:Gesture Recognizers。好教程是here。
如果你只需要移动红圈,但不调整它的大小 - 使用touches...
方法将是对你有好处。
但是,如果您想通过使用捏手势来调整圆的大小 - 您可能需要创建自定义手势识别器(并在其中执行相同的方法)以处理触摸和移动;并使用标准UIPinchGestureRecognizer来处理捏手势。
您需要创建自定义手势识别器,因为标准UITapGestureRecognizer和UIPanGestureRecognizer有一些问题,因为它提到了here。
UPD:
例如,你有UIViewController
。您正在将UIImageView
添加到viewController的view
。并且您正在创建具有清晰背景并在其中绘制红色圆圈的UIView
,或者您正在使用红色圆圈添加另一个UIImageView
(如果您有其中的图像)。我们称之为redCircleView
。
您正在使redCircleView
变为透明(redCircleView.alpha = 0
),或者您可以在用户触摸屏幕时对其进行初始化。我认为第二种选择更好,但我不确定。
在你UIViewController
你实现touchesBegan:withEvent:
方法,在那里你要么设置redCircleView.alpha = 1
或初始化这个redCircleView
。
在touchesMoved:withEvent:
实现,你可以使用UITouch:locationInView:
(void) touchesMoved: (NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint point = [touch locationInView:self.view];
.
.
.
}
然后你就可以更改redCircleView.center
(当时的红色圆圈中心将按照屏幕上的手指)获得的任何视图触摸的位置,或者你可以存储的位置先前的点,将其与当前位置进行比较,然后移动redCircleView
。
所以你有图像上有球。当用户开始与此图像交互时,会出现红圈(图片2(图层))和用户,通过移动他的手指,调整红圈?或者你想红圈自动适应网球? – derpoliuk 2013-03-17 01:33:53
@StasDerpoliuk我想让用户移动并调整红色的圆以适应球! – Manoj 2013-03-18 06:25:21