Показать изображение в кнопке UIB на долгом нажатии - PullRequest
4 голосов
/ 26 января 2012

У меня следующая проблема.У меня есть UIScrollView, на котором у меня есть пара кнопок со значками, установленными как изображения на этих кнопках.У меня есть кнопка распознавания длинных нажатий на каждой кнопке.Как я могу показать меньший значок удаления на кнопке отправителя при длительном нажатии?Моя цель - создать поведение, представленное iOS, когда пользователь хочет удалить определенное приложение.Это код кнопки (с изображениями):

//set the button with the image of conference here.
UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(3, 3, w-5, h-5);
CALayer * l = [button layer];
[l setMasksToBounds:YES];
[l setCornerRadius:8.0];
[button setImage:thumb forState:UIControlStateNormal];

button.property = confInfo;
[button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
button.tag = i; 
bView.tag = i;

//Add gesture recognizer to be used for deletion of conference.
UILongPressGestureRecognizer *pahGestureRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressGestureRecognizerStateChanged:)];

pahGestureRecognizer.minimumPressDuration = 1.0;
[button addGestureRecognizer:pahGestureRecognizer];

Этот код находится в цикле (см. I в коде).Мое длинное касание выглядит так:

- (void)longPressGestureRecognizerStateChanged:(UIGestureRecognizer *)gestureRecognizer {

      switch (gestureRecognizer.state) {

          case UIGestureRecognizerStateEnded:
               NSLog(@"Tapped!!!");                    
               break;

          default:
               break;
      }
 }

Как мне передать кнопку, на которой я нажал, это действие, чтобы отобразить уменьшенное изображение X в правом верхнем углу кнопки?

1 Ответ

2 голосов
/ 26 января 2012

Ваш распознаватель жестов должен быть присоединен к UIButton через его свойство view.

case UIGestureRecognizerStateEnded:
    NSLog(@"Tapped!!!");
    [((UIButton*)gestureRecognizer.view) setImage:thumbWithX forState:UIControlStateNormal];
    break;
...