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.
精彩评论