Thursday, January 24, 2013

Когда можно использовать UIButton вместо UIImageView

http://habrahabr.ru/post/63336/

Когда можно использовать UIButton вместо UIImageView

Этот пост, как и предыдущий, написан по мотивам тех псевдорешений, которые можно обнаружить на форумах по программированию под iPhone. Вот тут парни бились с проблемой отслеживания клика для UIImageView. Примечательно, что наилучшее решение, которое они нашли — это 10 или 20 раз в секунду проверять состояние «кнопок». На логичный вопрос одного из участников треда, почему-бы не поюзать UIButton вместо этого, последовал ответ, что, мол, мешает граница кнопки. Ну, скажем прямо, плохому танцору и не только это может помешать.
На самом деле, если вам захотелось использовать кастомное изображение в качестве кнопки существует довольно простой, но неочевидный способ. Заключается он в том, чтобы создать кнопку со специально выставленным buttonType в UIButtonTypeCustom.

UIButton *imageButton = [UIButton buttonWithType:UIButtonTypeCustom];
imageButton.frame = CGRectMake(0, 0, 75, 75);
[imageButton addTarget:self action:@selector(imageButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
[imageButton setImage:[UIImage imageNamed:@"button.png"] forState:UIControlStateNormal];
[self.view addSubview:imageButton];


После этого фреймворк даже при щелчке услужливо нарисует поверх изображения оверлей визуализируя прикосновение к кнопке. Опять-таки, все довольно просто, когда идешь по правильной тропинке. Оставайтесь на связи.

No comments:

Post a Comment