Приложение, которое я создаю, имеет множество пользовательских UIButtons, лежащих поверх довольно точно выложенных изображений. Buttonish, управляет изображениями и ярлыками, и что у вас есть, но с явным пользовательским стилем UIButton, сидящим поверх него, чтобы обращаться с краном.Выделение пользовательского UIButton
Мой клиент вчера говорит: «Я хочу, чтобы это было подчеркнуто, когда вы касаетесь его». Не обращайте внимания на то, что он сразу же подталкивает новый просмотр uinavigationcontroller ... он не моргнул, и поэтому он смущен. Oy.
Вот что я сделал для его решения. Мне это не нравится, но это то, что я сделал:
Я подклассифицировал UIButton (назвав его FlashingUIButton).
По какой-то причине я не мог просто настроить его с фоновым изображением в режиме управления. Казалось, что оно никогда не попадало в состояние «подчеркнуто». Не знаю, почему это так.
Так вместо этого я написал:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self setBackgroundImage:[UIImage imageNamed:@"grey_screen"] forState:UIControlStateNormal];
[self performSelector:@selector(resetImage) withObject:nil afterDelay:0.2];
[super touchesBegan:touches withEvent:event];
}
-(void)resetImage
{
[self setBackgroundImage:nil forState:UIControlStateNormal];
}
Это счастливо лежит мой grey_screen.png (30% непрозрачный черный ящик) на кнопку, когда он постучал и заменяет его счастливой пустоту .2 секунду позже.
Это прекрасно, но это означает, что мне нужно пройти через все мои многочисленные наконечники и изменить все мои кнопки с UIButtons на FlashingUIButtons. Это еще не конец света, но я действительно надеялся обратиться к этому как к категории UIButton, и поразил всех птиц одним камнем.
Любые предложения относительно лучшего подхода, чем этот?
Вы могли бы поставить (UIButton *) перед beganButton перед использованием его методы, как setBackgroundImage, только потому, что в реализации, я объявил его в качестве идентификатора. Я не уверен, будет ли это работать без этого. Другой альтернативой было бы объявить его как UIView, а не id, так как вы знаете, что это, по крайней мере, всегда будет UIView. В любом случае, вы можете поиграть с ним. – Omar