-1

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

所以首先我需要你帮我检测每次点击的颜色代码。其次,我需要关于这 12 个饼图的非功能性图像视图的帮助,以便用户无法看到这 12 种不同颜色的饼图,只能看到 1 个单色圆圈,但应始终对我下方的 12 个饼图执行轻敲手势1 个彩色圆圈。最后我还需要卷轴方面的帮助。

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

4

1 回答 1

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{

}

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

于 2013-09-29T08:42:48.633 回答