Cal*_*ter 2 objective-c uiimageview sender ios
UIImageViews如果UITapGestureRecognizer与它相关的那个被激活,我有八个我想要淡化.我有所有识别器连接到这个IBAction:
- (IBAction)disableDie:(id)sender {
NSLog(@"%@", sender);
NSLog(@"%ld",[(UIGestureRecognizer *)sender view].tag);
}
Run Code Online (Sandbox Code Playgroud)
我以为我可以用这样的循环来做到这一点:
- (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);
}
Run Code Online (Sandbox Code Playgroud)
但没有任何事情发生UIImageView在按下,但消息被打印出来.我已经使用了diceOutletArray其他循环,它的工作原理.
发件人是a UITapGestureRecognizer,而不是a UIImageView,因此numberImage == sender永远不会是真的.
试试这个:
- (IBAction)disableDie:(UIGestureRecognizer *)sender {
for (UIImageView *numberImage in self.diceOutletArray) {
if (numberImage == sender.view) {
numberImage.alpha = 0.65;
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
你根本不需要循环,这也可以正常工作:
- (IBAction)disableDie:(UIGestureRecognizer *)sender {
sender.view.alpha = 0.65;
}
Run Code Online (Sandbox Code Playgroud)