I have a scroll view, which has an image view with an image as a subview, and the image view has a UIButton
as one of its subviews. The problem is, I am not able to click on the button. I can SEE the button, but I cannot tap on it.
Can someone tell me what is it that I am messing up? Any help is greatly appreciated! Thanks!
Below is the code:
scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"img.jpg"]];
scrollView.delegate = self;
self.view = scrollView;
// add invisible buttons
[self addInvisibleButtons];
[scrollView addSubview:imageView];
addInvisibleButtons
has the following code:
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(buttonHandler) forControlEvents:UIControlEventAllEvents];
[button setTitle:@"point" forState:UIControlStateNormal];
button.frame = CGRectMake(0.0, 0.0, 40.0, 40.0);
[self.imageView addSubview:button];
May I ask why are you adding invisible
UIButtons
toUIImageView
?Seems like a bad practice, notice
Interface Builder
doesn't allow you to addUIButton
inside them.If you want an image with touch handling, you can:
UIImageView
hasuserInteractionEnabled
set toNO
/false
by default.You are adding the button as a subview to the image view. You should set it to
YES
/true
.You can have addInvisibleButtons implementation as
If you want to have
UIButton
as completely invisible then you need to remove a line[button setTitle:@"point" forState:UIControlStateNormal];
since it use to show text onUIButton
which make it visible.This may resolve your issue.