0

我通过屏幕上设置的 UITapGestureRecognizer 获得了 x 和 y,在获得了我发现对象触摸的位置后,我设置了条件,但不起作用。也许我在目标 C 中放置了错误的条件?Xcode 没有给出错误,但该功能不起作用。

  -(void)tappedMapOniPad:(int)x andy:(int)y{
       NSLog(@"the x is: %d", x);
         //the x is: 302
       NSLog(@"the y is: %d", y);
         //the y is: 37

       if((121<x<=181) && (8<y<=51)){ //the error is here
            self.stand = 431;
        }else if ((181<x<=257) && (8<y<=51)){
            self.stand=430;
        }else if ((257<x<=330) && (8<y<=51)){
            self.stand = 429;
        }

      NSLog(@"The stand is %d", self.stand);
        //The stand is 431

   }

我能怎么做?

4

4 回答 4

5
121<x<=181

让我们假设 x := 10 121<10<=181-> false<=181-> 0<=181-> true

你必须一步一步地去做。

((121 < x) &&  (x <=181))

让我们假设 x := 10 ((121 < 10) && (10 <=181))-> false && true->false

于 2013-01-10T09:38:45.753 回答
4

代替

if((121<x<=181) && (8<y<=51))

经过

if((121 < x && x <= 181) && (8 < y && y <= 51))
于 2013-01-10T09:37:55.057 回答
1

(121<x<=181)类型的表达式在 Obj-c 中无效。

利用,(x>121 && x<=181)

您的完整代码将如下所示:

    if((x>121 && x<=181) && (y>8 && y<=51)){ //the error is here
        self.stand = 431;
    }
    else if ((x>181 && x<=257) && (y>8 && y<=51)){
        self.stand=430;
    }
    else if ((x> 255 && x<=330) && (y>8 && y<=51)){
        self.stand = 429;
    }

或者您可以将其优化为:

if(y>8 && y<=51){
    if (x> 257 && x<=330) {
        self.stand = 429;
    }
    else if(x>181){
        self.stand=430;
    }
    else if(x>121){
        self.stand = 431;
    }
}
于 2013-01-10T09:37:45.697 回答
0

失踪&&

尝试

if((121<x&&x <=181)&&(8<y&&y <=51))

希望能帮助到你

于 2013-01-10T09:38:46.987 回答