繁体   English   中英

从UI选择图像时执行操作[关闭]

[英]Performing actions when selecting image from UI [closed]

我有一个UIView具有:

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

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

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

简单的解决方案:将点击手势识别器添加到每个图像视图。 然后,在手势识别器选择器中,您可以使用发送方的view属性,该属性是附加到该View手势的。

例:

    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.
    }


}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM