Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用sender参数确定选择了哪个UIImageView?_Ios_Objective C_Uiimageview_Sender - Fatal编程技术网

Ios 如何使用sender参数确定选择了哪个UIImageView?

Ios 如何使用sender参数确定选择了哪个UIImageView?,ios,objective-c,uiimageview,sender,Ios,Objective C,Uiimageview,Sender,我有八个UIImageView,如果与之关联的UIAppgestureRecognitizer被激活,我想淡出这些视图。我已将所有识别器连接到此iAction: - (IBAction)disableDie:(id)sender { NSLog(@"%@", sender); NSLog(@"%ld",[(UIGestureRecognizer *)sender view].tag); } 我想我可以用这样的循环来做: - (IBAction)disableDie:(id)

我有八个
UIImageView
,如果与之关联的
UIAppgestureRecognitizer
被激活,我想淡出这些视图。我已将所有识别器连接到此
iAction

- (IBAction)disableDie:(id)sender {

    NSLog(@"%@", sender);
    NSLog(@"%ld",[(UIGestureRecognizer *)sender view].tag);

}
我想我可以用这样的循环来做:

- (IBAction)disableDie:(id)sender {

    for (UIImageView *numberImage in self.diceOutletArray) {
        if (numberImage == sender) {
            numberImage.alpha = 0.65;
        }
    }

    NSLog(@"%@", sender);
    NSLog(@"%ld",[(UIGestureRecognizer *)sender view].tag);

}

但是按下的
UIImageView
没有任何变化,但是消息的内容会被打印出来。我在其他循环中使用了
diceOutletArray
,它可以工作。

手势识别器是发送者,而不是视图。您应该在
sender
的打印输出中看到这一点。您需要获取识别器的视图(假设它直接连接到其图像视图)

一旦你有了它,你就不需要再去找另一个指向视图的指针了:你已经有了它。它只是名为
sender.view
,而不是
mumbleumbleimageview


只需将
setAlpha:
发送到该指针。

发送方是
UIAppgestureRecognitizer
,而不是
UIImageView
,并且 因此,
numberImage==sender
将永远不会为真

请尝试以下方法:

- (IBAction)disableDie:(UIGestureRecognizer *)sender {
    for (UIImageView *numberImage in self.diceOutletArray) {
        if (numberImage == sender.view) {
            numberImage.alpha = 0.65;
            break;
        }
    }
}
实际上,您根本不需要循环,这也可以正常工作:

- (IBAction)disableDie:(UIGestureRecognizer *)sender {
    sender.view.alpha = 0.65;
}