我有自己的jpg,我想做这样的事情:



声明区域,单击后将在其中显示该弹出窗口。我怎样才能做到这一点?我已经尝试过使用地图视图,但是我认为这是不正确的。

最佳答案

有许多方法可以完成,但是您没有提供足够的细节来确定哪种方法最合适。 (例如,您是否需要在单击“热点”区域之前或之后以图形方式显示这些区域,等等)。

要采用最基本的方法,请定义一个基于CGRect的对象数组,然后在触摸事件中,测试触摸点是否在任何区域内。

// many ways to define the rects
    NSMutableArray* hotspots; //this would be a @property declared elsewhere

// define 5 CGRects
    for (int i = 0; i < 5; i++) {
        NSValue *rectObj = [NSValue valueWithCGRect:CGRectMake(i * 10, 0, 44, 44)];
        [hotspots addObject:rectObj];
    }


//并测试点击率:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    // Detect touch anywhere
    UITouch *touch = [touches anyObject];

    for (NSValue* rectObj in hotspots) {
        if (CGRectContainsPoint([rectObj CGRectValue], point)){
            //this is a hit so do something

            break;
        }
    }
}

关于iphone - 从我自己的图像创建“ map ”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14673401/

10-13 08:59