2015-05-28 7 views
1

У меня есть UIView, который имеет:Выполнения действий при выборе изображения из пользовательского интерфейса

  1. Image Посмотреть
  2. Text View
  3. Scroll View (он имеет несколько изображений, которые динамически создаваемые во время выполнения)

Что мне нужно сделать: когда я выбираю изображение (либо первое изображение, либо изображение из прокрутки), внутри будет отображаться всплывающее окно.

Я подготовил всплывающее окно, но теперь все, что мне нужно, - это способ идентифицировать изображение, которое нажимает пользователь, чтобы я мог вызвать всплывающий контроллер и просмотреть изображение. thx в продвинутом состоянии.

+0

Что такое всплывающее окно просмотра для вас? Поповер? –

+0

@ VictorSigler Я не понял ваш вопрос. но всплывающее окно - это файл xib, который я вызываю при необходимости с правильным изображением –

ответ

2

Простое решение: Добавить распознаватель жестов к каждому изображению. Затем в селекторе распознавания жестов вы можете использовать свойство вида отправителя, к которому прикреплен жест представления.

Пример:

UIImageView* imageView1; 

    UITapGestureRecognizer* tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTaps:)]; 

/* The number of fingers that must be on the screen */ 
tapGestureRecognizer.numberOfTouchesRequired = 1; 

/* The total number of taps to be performed before the gesture is recognized */ 
tapGestureRecognizer.numberOfTapsRequired = 1; 

затем в handleTaps вы можете сделать следующее

-(void) handleTaps:(UITapGestureRecognizer*)paramSender 
{ 
    UIImageVIew* seletedImageView = paramSender.view; 
UIImage* image = selectImageView.image; //do whatever you want with image 
} 

* Не забудьте установить imageView.userInteractionEnabled = YES;

быстрое тестирование кода

import UIKit 

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     var imageView1 : UIImageView 
     var image1 : UIImage 

     image1 = UIImage(named: "testImage")! 
     imageView1 = UIImageView(image: image1) 
     imageView1.tag = 1 
     imageView1.frame = CGRectMake(10, 10, 100, 100) 
     let tapGesture = UITapGestureRecognizer(target: self, action: Selector("handleTap:")) 
     tapGesture.numberOfTouchesRequired = 1 
     tapGesture.numberOfTapsRequired = 1 
     imageView1.userInteractionEnabled = true 

     imageView1.addGestureRecognizer(tapGesture) 

     self.view.addSubview(imageView1) 
    } 
    func handleTap(sender: UITapGestureRecognizer) { 
     var imageView : UIImageView = sender.view as UIImageView 
     var image : UIImage = imageView.image! 
     println("Taped UIImageVIew"+String(imageView.tag)) 
    } 
    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 
+0

. Это должно работать на меня, я думаю, но это в Obj-C. Я попытаюсь найти подобное в быстром. Но если у вас быстрое издание. это будет намного быстрее ... thx –

+0

спасибо человеку, который помог мне в самый раз –

+0

еще одна вещь, хотя, var imageView: UIImageView = sender.view дает мне ошибку. "не может преобразовать тип выражения UIView? В тип 'UIImageView' Как я могу справиться с этим? –

Смежные вопросы