IOS: событие при касании Imageview - PullRequest
5 голосов
/ 12 октября 2011

У меня есть ImageView с png, и я хочу сделать это: когда кто-то трогает это изображение, это изменение альфа на 0.0, возможно ли это? (все без кнопок)

Ответы [ 5 ]

15 голосов
/ 06 сентября 2012

вы можете использовать UITapGestureRecognizer, добавленный к UIImageView через addGestureRecognizer

фрагменты:

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTaped:)];
singleTap.numberOfTapsRequired = 1;
singleTap.numberOfTouchesRequired = 1;
[iv addGestureRecognizer:singleTap];
[iv setUserInteractionEnabled:YES];

и

- (void)imageTaped:(UIGestureRecognizer *)gestureRecognizer {
    [UIView animateWithDuration:0.5 animations:^(void){
         imageView.alpha = 0.0f;
    }];
}
6 голосов
/ 12 октября 2011

Да, это возможно.Например, вы можете сделать это с помощью следующих шагов:

  1. установить для свойства userInteractionEnabled представления изображения значение YES, чтобы оно получало события касания
  2. , добавить к нему UITapGestureRecongnizer
  3. в обработчике жестов установите альфа представления в 0.0, вы можете сделать это и с анимацией:

    [UIView animateWithDuration:0.5 animations:^(void){
            imageView.alpha = 0.0f;
        }];
    
4 голосов
/ 12 октября 2011
2 голосов
/ 16 ноября 2014

код в Swift

В моем случае я реализовал жест касания для клика по изображению

1 - связать изображение с помощью ViewController, перетаскивая

@IBOutlet weak var imgCapa: UIImageView!

2 - Экземпляр UITapGestureRecognizer в методе ViewDidLoad:

override func viewDidLoad() {
    super.viewDidLoad()

    //instance the UITapGestureRecognizer and inform the method for the action "imageTapped"
    var tap = UITapGestureRecognizer(target: self, action: "imageTapped")

    //define quantity of taps
    tap.numberOfTapsRequired = 1
    tap.numberOfTouchesRequired = 1

    //set the image to the gesture 
    imgCapa.addGestureRecognizer(tap)
}

3 - Создайте метод, чтобы делать то, что вы хотите, когда изображение щелкнуло

func imageTapped(){
    //write your specific code for what do you want     

    //in my case I want to show other page by specific segue 
    let sumario = self.storyboard?.instantiateViewControllerWithIdentifier("sumarioViewController") as SumarioViewController

    self.performSegueWithIdentifier("segueSumarioViewController", sender: sumario)
}
0 голосов
/ 25 февраля 2016

В недавнем Xcode это довольно просто. Зайдите в раскадровку, в библиотеке объектов ищите «жест», перетащите тот, который вы хотите, на вид изображения. Затем вы можете обработать объект жеста в иерархии представления как объект, к которому осуществляется прикосновение, т. Е. Перетащить его оттуда в контроллер представления, чтобы подключить обработчик событий.

Оказавшись там, вы можете установить альфа по своему усмотрению, хотя, если вы пытаетесь по существу удалить вид изображения, вместо этого вы должны установить imageView.hidden = true / imageView.hidden = YES, потому что это остановит его получение событий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...