Search code examples
iphoneuitableviewios5footer

Hide footer view in UITableView


I have been working to hide the footerview for while. My problem is I have a button in footer when I click the button one section will be added below as the last section and the button too will shift to the newly created section and now I want to hide the footer in the previous section of the table after the update of sections.

footerView.hidden = YES

I used this in the button action but its not working.


Solution

  • There are four solutions. They are,

    Solution 1:

    tableView.sectionHeaderHeight = 0.0;
    tableView.sectionFooterHeight = 0.0;
    
    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger )section {
        return 1.0;
    }
    
    - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger )section {
        return 1.0;
    }
    
    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger )section {
        return [[UIView alloc] initWithFrame:CGRectZero];
    }
    
    - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger )section {
        return [[UIView alloc] initWithFrame:CGRectZero];
    }
    

    Solution 2:

    You can set the footer/header height via interface builder under the size tab.

    Solution 3:

    set contentInset property.

    self.tableView.contentInset = UIEdgeInsetsMake(-20, 0, -20, 0);
    

    It is used to make the top and bottom touch the edge.

    Solution 4:

    implement the below, set the values as per your condition. 0.0 will not be accepted. The lower value should be 1.0.

    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger )section {
        if(section == 0) {
           return 6;
        } else {
           return 1.0;
        }
    }
    
    - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger )section {
        return 5.0;
    }
    
    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger )section {
        return [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
    }
    
    - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger )section {
        return [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
    }