У меня есть два изображения для кнопки, одно для обычного и одно для выбранного. И я хочу, чтобы она действовала так же, как скругленная прямоугольная кнопка, когда вы касаетесь ее, изображение кнопки меняется, и если вы перетаскиваете ее наружу, изображение возвращается к нормальному. Вот что я пробовал.
Сначала я сделал собственный контроллер представления, а затем добавил к нему методы в реализации, которые вы видите здесь. И я подключил эти методы к своим 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];
}
Что ж, я сделал это, и это сработало довольно хорошо, но есть 2 проблемы.
1-й :Если бы у меня было около 20 кнопок, мне пришлось бы иметь 40 методов. На самом деле это не проблема, я просто думаю, что об этом стоит подумать как о потенциальной проблеме.
2-й :Когда я перетаскиваю свою кнопку наружу, я хотел бы, чтобы она переключилась на нормальное изображение до того, как пользователь действительно отпустит палец. На данный момент изображение по умолчанию отображается только тогда, когда палец отпущен, а не когда палец перемещается на определенное расстояние, чтобы команда touchUpInside не выполнялась. Я хочу это, потому что это в основном стандарт. И это также помогло бы пользователю понять, что он может вернуть свое импульсивное поведение по нажатию кнопок, если он того пожелает.
Круто, любая помощь будет большой помощью!