我有两个按钮的图像,一个正常的,一个选择的。而且我希望它的行为方式与圆形矩形按钮的行为方式相同,当您按下时,按钮图像会发生变化,如果您向外拖动,图像会恢复正常。这是我尝试过的。
首先,我制作了一个自定义视图控制器,然后我在实现中添加了方法,这就是您在此处看到的。我将这些方法连接到我的 2 个按钮,我的播放“按钮”和我的“设置”按钮。
- (IBAction)playButtonSelected:(UIButton *)sender { //this is for event touchDown
[sender setImage:[UIImage imageNamed:@"PlayButtonSelected.png"] forState:UIControlStateNormal];
}
- (IBAction)playButtonNotSelected:(id)sender { //this is for event touchUpOutside
[sender setImage:[UIImage imageNamed:@"PlayButton.png"] forState:UIControlStateNormal];
}
- (IBAction)settingsButtonSelected:(UIButton *)sender { //this is for event TouchDown
[sender setImage:[UIImage imageNamed:@"SettingsButtonSelected.png"] forState:UIControlStateNormal];
}
- (IBAction)settingsButtonNotSelected:(id)sender { //this is for event touchUpOutside
[sender setImage:[UIImage imageNamed:@"SettingsButtons.png"] forState:UIControlStateNormal];
}
好吧,我这样做了,效果很好,但是有两个问题。
第一:如果我有 20 个按钮,我必须有 40 个方法。这不是一个真正的问题,我只是认为这是一个潜在的问题。
第二:当我将按钮拖到外面时,我希望它在用户真正松开手指之前切换到正常图像。截至目前,图像仅在手指松开时默认显示,而不是在手指移动一定距离时才会显示,因此 touchUpInside 命令将不会运行。我想要这个,因为它基本上是标准。并且它还可以帮助用户理解,如果他愿意,他可以收回点击按钮的冲动行为。
酷,任何帮助都会有很大帮助!