Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UIImageView as button

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

but here is what i'm doing:

[View setUserInteractionEnabled:YES];  [View addTarget:self action:@selector(myAction:) forControlEvents:UIControlEventTouchUpInside];   - (void) myAction:(id)sender {     NSLog(@"It works!"); } 
like image 581
user1480092 Avatar asked Jul 04 '12 13:07

user1480092


People also ask

What is the difference between a UIImage and a UIImageView?

UIImage contains the data for an image. UIImageView is a custom view meant to display the UIImage .

What is use of UIImageView?

Overview. Image views let you efficiently draw any image that can be specified using a UIImage object. For example, you can use the UIImageView class to display the contents of many standard image files, such as JPEG and PNG files.


1 Answers

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") } 
like image 173
TheTiger Avatar answered Oct 03 '22 06:10

TheTiger