Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UIButton In Table Footer Unresponsive

For custom table footers, I am using the following code

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    if(editmode) {
    if(footerView == nil) {
        //allocate the view if it doesn't exist yet
        footerView  = [[UIView alloc] init];

        //we would like to show a gloosy red button, so get the image first
        UIImage *image = [[UIImage imageNamed:@"button_green.png"] stretchableImageWithLeftCapWidth:8 topCapHeight:8];

        //create the button
        UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        [button setBackgroundImage:image forState:UIControlStateNormal];

        //the button should be as big as a table view cell
        [button setFrame:CGRectMake(10, 3, 300, 44)];

        //set title, font size and font color
        [button setTitle:@"Photo" forState:UIControlStateNormal];
        [button.titleLabel setFont:[UIFont boldSystemFontOfSize:20]];
        [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

        //set action of the button
        [button addTarget:self action:@selector(selectExistingPicture) forControlEvents:UIControlEventTouchUpInside];

        //add the button to the view
        [footerView addSubview:button];
        UIButton *button2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        image = [[UIImage imageNamed:@"button_grey_dark.png"] stretchableImageWithLeftCapWidth:8 topCapHeight:8];
        [button2 setBackgroundImage:image forState:UIControlStateNormal];

        //the button should be as big as a table view cell
        [button2 setFrame:CGRectMake(10, 50, 300, 44)];

        //set title, font size and font color
        [button2 setTitle:@"Note" forState:UIControlStateNormal];
        [button2.titleLabel setFont:[UIFont boldSystemFontOfSize:20]];
        [button2 setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

        //set action of the button
        [button2 addTarget:self action:@selector(mkFolder) forControlEvents:UIControlEventTouchUpInside];

        //add the button to the view
        [footerView addSubview:button2];

        //      [button setupAsRedButton];
    }

    //return the view for the footer
    return footerView;
    } 
    return nil;
}

Using this, the first button responds perfectly, however, the second one does not register any events. Even if the function does not exist, no null function error is generated. Any ideas on why the UITouchUpInside is not being recognized?

like image 490
Precursor Avatar asked Jan 20 '23 09:01

Precursor


1 Answers

Doh!!!

Right below this code, I had

// specify the height of your footer section
- (CGFloat)tableView:(UITableView *)tableView
heightForFooterInSection:(NSInteger)section {
    //differ between your sections or if you
    //have only on section return a static value
    return 50;
}

Which set the UIView to ignore anything below 50 pixels. Changed it to 100 and I was good.

like image 52
Precursor Avatar answered Jan 31 '23 10:01

Precursor