I am new to iPhone development,I need help in understanding the below,as I am able to create newView using the following
UIView *newView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 80, 30)];
newView.backgroundColor=[UIColor clearColor];
UIButton *newViewBtn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
newViewBtn.frame = CGRectMake(newView.frame.origin.x+5,
newView.frame.origin.y+5,60,20);
[newView addSubview:newViewBtn];
[self.view addSubview:newView];
Above code is working without any problem. But when I try to create the view using the following, view is created alright, but the button on the view is not clickable.
int randNumX = arc4random() % 150;
int randNumY = arc4random() % 200;
UIView newView=[[UIView alloc]init];
newView.frame =CGRectMake(randNumX, randNumY, 80, 30);
newView.backgroundColor=[UIColor clearColor];
UIButton *newViewBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
newViewBtn.frame = CGRectMake(newView.frame.origin.x+5
,newView.frame.origin.y+5,60,20);
[newView addSubview:newViewBtn];
[self.view addSubview:newView];
and there is one another scenario if change the following code
newViewBtn.frame = CGRectMake(newView.frame.origin.x+5
,newView.frame.origin.y+5,60,20);
with the code below app crashes
newViewBtn.frame =CGRectMake(randNumX+5,randNumY+5,60,20);
Any help will be greatly appreciated,thanks in advance.
I have added the following code already
newViewBtn addTarget:self action:@selector(btnclick:)forControlEvents:UIControlEventTouchUpInside];
-(void)btnclick:(id)sender
{
//my code
}
It is working in the first case:
My main concern here is when the newView is draw ,why the button on this view is not clickable
When adding a custom subview to a UIButton you have to turn off the userInteractionEnabled property.
customView.userInteractionEnabled = NO;
then add to your button.
[customButton addSubView:customView];
Otherwise your custom view intercepts touch events before the button since it's added to the top of the view stack.