IOS: добавить действие к изображению в push-уведомлении о расширении содержимого
Я показываю несколько изображений в виде сетки в своем расширении контента. как я могу добавить другое действие для каждого изображения. Я знаю, что мы можем добавить действие для кнопки. Можно ли добавить действие и для изображения.
1 ответ
Вы можете добавитьUITapGestureRecognizer
к вашему изображению и различайте ваши изображения, используя следующее:
Версия цели-C:
// declare tap gesture
UITapGestureRecognizer *imageTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageTapped:)];
// specify number of taps required
[imageTap setNumberOfTapsRequired:1];
// enable user interaction and add the tap gesture + tag for image 1
[imageview1 setUserInteractionEnabled:YES]
[imageview1 addGestureRecognizer:imageTap];
imageview1.tag = 1;
// enable user interaction and add the tap gesture + tag for image 2
[imageview2 setUserInteractionEnabled:YES]
[imageview2 addGestureRecognizer:imageTap];
imageview.tag = 2;
-(void)imageTapped:(UITapGestureRecognizer*)sender {
if(sender.view.tag == 1) {
// do something with image 1 here
} else if (sender.view.tag == 2) {
// do something with image 2 here
}
}
Быстрая версия:
// declare tap gesture
let imageTap = UITapGestureRecognizer(target: self, action: #selector(imageTapped))
// specify number of taps required
imageTap.numberOfTapsRequired = 1
// enable user interaction and add the tap gesture + tag for image 1
imageView1.isUserInteractionEnabled = true
imageView1.addGestureRecognizer(imageTap)
imageView1.tag = 1
// enable user interaction and add the tap gesture + tag for image 2
imageView2.isUserInteractionEnabled = true
imageView2.addGestureRecognizer(imageTap)
imageView2.tag = 2
@objc func imageTapped(sender: UITapGestureRecognizer) {
if(sender.view!.tag == 1) {
// do something with image 1 here
} else if (sender.view!.tag == 2) {
// do something with image 2 here
}
}
Если вы пытаетесь подключить Obj-C к Swift. Добавьте свойtags
в Obj-C и импортируйте файл заголовка Swift, сгенерированный вашими проектами, в файл заголовка Objective-C:
#import "ProjectName-Swift.h"