7 ответов:
вам понадобится
UITapGestureRecognizer. Для настройки используйте это:override func viewDidLoad() { super.viewDidLoad() let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:))) imageView.isUserInteractionEnabled = true imageView.addGestureRecognizer(tapGestureRecognizer) } func imageTapped(tapGestureRecognizer: UITapGestureRecognizer) { let tappedImage = tapGestureRecognizer.view as! UIImageView // Your action }(вы также можете использовать UIButton и назначить ему изображение без текста, а затем просто подключить IBAction)
вам нужно добавить распознаватель жестов (для использования крана UITapGestureRecognizer для нажмите и удерживайте использовать UILongPressGestureRecognizer) к
UIImageView.let tap = UITapGestureRecognizer(target: self, action: #selector(YourClass.tappedMe)) imageView.addGestureRecognizer(tap) imageView.isUserInteractionEnabled = trueи реализовать метод селектора, как:
@objc func tappedMe() { println("Tapped on Image") }
вы можете добавить
UITapGestureRecognizerк книги, просто перетащите один в вашей раскадровке или xib, клавиши Ctrl-перетащить из ImageView Для в интерфейса gesturerecognizer, и Ctrl-перетащить из интерфейса gesturerecognizer в Свифт-файл, чтобы сделатьIBAction.вам также необходимо включить взаимодействие с пользователем на
UIImageView, как показано на этом изображении:
для swift 2.0 и выше сделать это
@IBOutlet weak var imageView: UIImageView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let tap = UITapGestureRecognizer(target: self, action: #selector(ViewController.tappedMe)) imageView.addGestureRecognizer(tap) imageView.userInteractionEnabled = true } func tappedMe() { print("Tapped on Image") }
вы могли бы просто установить изображение
UIButtonк тому, что вы обычно ставите вUIImageView. Например, где бы вы делали:myImageView.image = myUIImageвы могли бы вместо этого использовать:
myButton.setImage(myUIImage, forState: UIControlState.Normal)Итак, вот как может выглядеть ваш код:
override func viewDidLoad(){ super.viewDidLoad() var myUIImage: UIImage //set the UIImage here myButton.setImage(myUIImage, forState: UIControlState.Normal) } @IBOutlet var myButton: UIButton! @IBAction func buttonTap(sender: UIButton!){ //handle the image tap }самое замечательное в использовании этого метода заключается в том, что если вам нужно загрузить изображение из базы данных, вы можете установить название кнопки перед установкой изображения:
myButton.setTitle("Loading Image...", forState: UIControlState.Normal)чтобы сообщить своим пользователям что вы загружаете изображение
Вы можете поставить
UIButtonс прозрачным фоном поверхUIImageView, и слушать для нажатия на кнопку перед загрузкой изображения
Swift 4 Code
Шаг 1 В ViewdidLoad ()
let pictureTap = UITapGestureRecognizer(target: self, action: #selector(MyInfoTableViewController.imageTapped)) userImageView.addGestureRecognizer(pictureTap) userImageView.isUserInteractionEnabled = trueШаг 2 Добавьте Следующую Функцию
@objc func imageTapped() { let imageView = userImageView let newImageView = UIImageView(image: imageView?.image) newImageView.frame = UIScreen.main.bounds newImageView.backgroundColor = UIColor.black newImageView.contentMode = .scaleAspectFit newImageView.isUserInteractionEnabled = true let tap = UITapGestureRecognizer(target: self, action: #selector(dismissFullscreenImage)) newImageView.addGestureRecognizer(tap) self.view.addSubview(newImageView) self.navigationController?.isNavigationBarHidden = true self.tabBarController?.tabBar.isHidden = true }Он протестирован и работает правильно

Comments