开发者

UIButton In Table Footer Unresponsive

开发者 https://www.devze.com 2023-02-12 20:54 出处:网络
For custom table footers, I am using the following code - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {

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?


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消