0

我有一张图片,我想拥有它,所以当我点击图片的某个部分时,只有该部分会突出显示。目前为了测试这一点,我已经设置了一个应用程序并在背面放置了一个图像视图。我刚刚创建了一个图像并在上面写了 1,2,3 和 4。然后我使用 UIView 在图像中绘制水平和垂直线

我已经设置了一个点击手势监听器,它会打印出我点击了哪个部分。下面的代码

- (void)handleSingleTap:(UITapGestureRecognizer *)recognizer
{
    // Get the location of the touch
    CGPoint touchPoint = [recognizer locationOfTouch:0 inView:[self view]];

    if(touchPoint.x > 10 && touchPoint.x < 160)
    {

        if(touchPoint.y > 30 && touchPoint.y < 220)
        {
            NSLog(@"Button 1");


        }else if(touchPoint.y > 220 && touchPoint.y < 430){
            NSLog(@"Button 3");
        }

    }else if(touchPoint.x > 160 && touchPoint.x < 310)

    {
        if(touchPoint.y > 220 && touchPoint.y < 430)
        {
           NSLog(@"Button 4");
        }else if(touchPoint.y > 30 && touchPoint.y < 220){
            NSLog(@"Button 2");
        }

    }

   //For debugging
   // NSLog(@"x = %f y = %f", touchPoint.x, touchPoint.y);
}

现在我想要发生的是,当我单击特定部分时,我只想突出显示图像的那一部分。这可能吗?目前我正在使用的解决方法是在网格顶部添加 4 个按钮,这些按钮在正常状态下是隐藏的,并为它们提供一个像这样突出显示状态的图像

[button setBackgroundImage:[UIImage imageNamed:@"highlightImage.png"] forState:UIControlStateHighlighted];

并将 alpha 设置为 0.5 或附近的某个值,因此看起来该部分正在突出显示。如果这是唯一可以做到的方法,那么只需留下一个答案,我会接受它,但如果有可用的解决方案,我更喜欢更具体的解决方案!提前致谢

创建的图像示例 在此处输入图像描述

4

2 回答 2

1

看起来是正确的方法。

也许您应该在代码中使用较少的硬编码数字并在更通用的级别上实现此功能(例如,使用frame图像视图或按钮的属性)。

于 2012-08-09T08:15:46.500 回答
1

我相信,您可以免费获得这种行为,方法是向上提升层次结构并改用 UIControl。将其子类化并修改其突出显示行为。

于 2012-08-09T08:15:56.823 回答