2015-05-28 61 views
1

选择图像时,我有具有一个UIView:执行操作从UI

  1. 图像查看
  2. 文本视图
  3. 滚动视图(它具有在运行时动态创建的多个图像)

我需要做的是:当我选择一个图像(第一幅图像或滚动视图中的图像)时,会出现一个弹出窗口,其中包含图像。

我准备了弹出式视图,但现在我需要的是一种识别用户按下的图像的方法,以便我可以调用弹出式控制器并查看图像。 thx in advanced。

+0

什么是弹出视图的吗? Popover? –

+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' 我该如何处理这个问题? –