Как узнать, нажата ли кнопка в определенное время
У меня есть кнопка с изображением, и через некоторое время изображение кнопки изменится, а затем вернется через несколько секунд. Я хочу быть в состоянии сказать, нажата ли кнопка, в то время как изображение отличается. Спасибо!
1 ответ
У вас есть несколько вариантов, но я подробно опишу два из них. Первый более автономен и надежен, а второй, вероятно, легче читать и понимать.
Проверьте фоновое изображение
Вероятно, самый простой способ сделать это - просто протестировать изображение. Время от времени изображение меняется, но вам не все равно, когда нажимается кнопка, вам просто важно, какой фон виден, когда он есть.
Другими словами, все, что вам действительно нужно знать, это то, является ли фон кнопки MainBackground или AlternateBackground, поэтому, когда кнопка нажата, вы можете просто проверить, какая это кнопка.
Попробуйте что-то вроде этого, когда кнопка нажата:
-(void)buttonPressed:(UIButton*)sender {
UIImage *mainBackground = [UIImage imageNamed:@"YOUR_IMAGE_NAME"];
NSData *imgdata1 = UIImagePNGRepresentation(sender.image);
NSData *imgdata2 = UIImagePNGRepresentation(mainBackground);
if ([imgdata1 isEqualToData:imgdata2]) {
// The button's background is the MainBackground, do one thing
} else {
// The button's background is the AlternateBackground, do another thing
}
}
Следите за тем, какое изображение отображается в данный момент
В качестве альтернативы, вы можете перевернуть значение BOOL при изменении фона изображения. Что-то вроде...
@property BOOL isMainBackground;
... в вашем файле H, а затем, когда вы устанавливаете фоновое изображение кнопки, вы также устанавливаете self.isMainBackground = YES;
или же self.isMainBackground = NO;
Тогда ваш метод нажатия кнопки будет выглядеть примерно так:
-(void)buttonPressed:(UIButton*)sender {
if (self.isMainBackground) {
// The button's background is the MainBackground, do one thing
} else {
// The button's background is the AlternateBackground, do another thing
}
}