我有一个带有imageview和下面的tableview的视图。imageview包含一个人体图像。现在我想做的是将图像分为三部分:头部、胸部和腹腔。tableview还有三行,每一行都对应于上面提到的主体部分。当我选择或单击这些区域中的任何一个时,我希望在表的相应行中滚动,并导航到另一个视图控制器,该控制器将用作局部视图控制器。假设我选择了head,我想导航到另一个详细解释head的页面。当我选择任何一行时,都会得到同样的效果。
您可以使用附加到图像视图的UITapGestureRecognizer
实例轻松完成此操作。首先,您必须将UIImageView
的userInteractionEnabled
设置为YES
。在附加手势识别器之后,您应该在手势处理程序中将触摸解析为其区域。
- (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 ( ... ) {
....
或者,如果区域有点复杂,请使用UIBezierPath
或CGPathRef
。