我必须将地图的图像(地点,建筑等的概述)合并到图像视图中。地图中应该有可以选择的地方。通常,图像具有20-25个必须可选择的位置。这些地方的形状彼此不同。
在html中我们有map标签来完成这类任务,我需要在iOS原生平台上为此解决这个问题。任何建议或帮助都会很棒!
答案 0 :(得分:1)
关键想法:您可以将UITapGestureRecognizer
添加到UIImageView
。设置selector
,每次点击都会触发。在selector
中,您可以检查点按完成的坐标。如果坐标满足您启动事件的条件,则可以执行任务。
添加手势识别器:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleImgViewTap:)];
[singleTap setNumberOfTapsRequired:1];
[yourImgView addGestureRecognizer:singleTap];
设置选择器:
-(void)handleImgViewTap:(UITapGestureRecognizer *)gestureRecognizer
{
// this method gonna fire everytime you tap on the
// image view. you have to check does the point where
// the tap was done, satisfy your path/area condition.
CGPoint point = [gestureRecognizer locationInView:yourImgView];
// here point.x and point.y is the location of the tap
// inside your image view.
if(/*your condition goes here*/)
{
// execute your staff here.
}
}
希望它有所帮助,Happy ios编码。
答案 1 :(得分:0)
给定视图(ora imageview),您应该定义形状的UIBezierPath。 在此视图中添加一个taprecognizer,并设置与识别器委托相同的视图。 在委托方法中,使用UIBezierPath.contains(_ :)来了解tap是否在路径内,并决定是否触发tap事件。
如果您需要代码示例,请告诉我。