0

我有一个带有图像视图和下面的表格视图的视图。imageview 包含人体的图像。现在我想做的是将图像分成三个部分:头部、胸部和腹腔。表格视图也有三行,每行对应于上面提到的主体部分。当我选择或单击这些区域中的任何一个时,我想滚动表格的相应行并导航到另一个视图控制器,该视图控制器将用作详细视图控制器。所以假设我选择了 head,我想导航到另一个详细解释 head 的页面。当我选择任何行时,我会得到相同的效果。

4

1 回答 1

1

UITapGestureRecognizer您可以使用附加到图像视图的实例轻松完成此操作。首先,您必须将UIImageView's设置userInteractionEnabledYES. 附加手势识别器后,您应该在手势处理程序中将触摸解析为其区域。

- (void)tap:(UITapGestureRecognizer *)tapGesture {
    CGPoint locationInView = [tapGesture locationInView:tapGesture.view];

    /* Resolve the location here */
}

现在分辨率取决于您将如何定义区域。如果它们只是矩形,则将三个CGRect对象声明为实例变量并适当地设置它们并执行类似的操作,

if ( CGRectContainsPoint(headRect, locationInView) ) {
    /* It's a head, load its view controller */
} else if ( ... ) {
    ....

或者,如果区域有点复杂,请使用UIBezierPathor CGPathRef

于 2011-07-05T09:29:06.880 回答