创建一个非功能性的imageview只是为了可见性

时间:2013-09-29 07:45:05

标签: iphone ios math touch xcode4.6.3

我的应用程序有一个圆圈,分为12个相等的馅饼,即每1小时平板1个馅饼。我需要为每个馅饼设置一个特定的敲击手势功能,所以我想为每个馅饼分配一个特定的颜色代码,以便我可以根据饼图的颜色检测用户拍摄位置的颜色。

首先,我需要您帮助我检测每次点击的颜色代码。其次我需要12个馅饼的非功能性图像视图的帮助,这样用户就无法看到12种不同颜色的馅饼,只看到1个单色的圆圈,但应该总是在我下面的12个馅饼上进行敲击手势。 1个彩色圆圈。最后我还需要有关卷轴的帮助。

我在我的应用程序中实现了分段滚动视图,这样如果用户从左向右点击,则会显示一个新的段,反之亦然。该应用程序只有2个分段滚动视图。一个用于在点击时添加文本其他用于在点击时在那些馅饼中显示文字。 我可以在teamviewer和skype上使用,因此任何帮助方式都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

好像你有2个不同半径的同心圆。要实现您正在寻找的效果,您只需要检查用户触摸和圆心之间的线的角度。然后,您只需检查线条的长度即可查看您所在的圆圈。请尝试:

// Find the pie segment you are in. Angle in radians.
float angle = atan2(centre.y - touch.y, centre.x - touch.x))

// Use the angle to figure out which segment the user tapped in. You'll have to
// figure out the angles for the 12 segments on your own!
if(angle > 2.7489 || angle < -2.7489){

}

// Compute the length of the line.
float dx = centre.x - touch.x;
float dy = centre.y - touch.y;
float length = sqrt(dx * dx + dy * dy);

// Check if the user touched the inner circle.
if(length <= radius1){

}
// Check if the user touched the outer circle.
else if(length <= radius2){

}
// The user tapped outside both circles.
else{

}

从那里,您只需添加代码,您需要更改任一圆的布局。希望有帮助!