UIImageView as button

后端 未结 5 1142
庸人自扰
庸人自扰 2020-12-12 17:48

I\'m trying to make a UIImageView accept actions and fire them everytime it clicked on the UIImageVie, but i\'m having hard time in getting it to work, please help me out

5条回答
  •  挽巷
    挽巷 (楼主)
    2020-12-12 18:11

    Objective-C

    In your viewDidLoad: method write this:

    -(void)viewDidLoad {
    
        UIImageView *imageview = [[UIImageView alloc]initWithFrame:CGRectMake(100.0, 100.0, 100.0, 100.0)];
        [imageview setImage:[UIImage imageNamed:@"image.png"]];
        [imageview setUserInteractionEnabled:YES];
    
        UITapGestureRecognizer *singleTap =  [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapping:)];
        [singleTap setNumberOfTapsRequired:1];
        [imageview addGestureRecognizer:singleTap];
    
        [self.view addSubview:imageview];
    }
    

    Then call your gesture method like this:

    -(void)singleTapping:(UIGestureRecognizer *)recognizer {
        NSLog(@"image clicked");
    }
    

    Swift

    override func viewDidLoad() {
        super.viewDidLoad()
    
        let imageView: UIImageView = UIImageView(frame: CGRect(x: 100.0, y: 100.0, width: 100.0, height: 100.0))
        imageView.image = UIImage(named: "image.png")
        imageView.isUserInteractionEnabled = true
    
        let singleTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.singleTapping(recognizer:)))
        singleTap.numberOfTapsRequired = 1
        imageView.addGestureRecognizer(singleTap)
    
        self.view.addSubview(imageView)
    }
    
    @objc func singleTapping(recognizer: UIGestureRecognizer) {
        print("image clicked")
    }
    

提交回复
热议问题