Friday, June 7, 2013

UITableView UITableViewAutomaticDimension example in Objective C (iOS).


UITableView UITableViewAutomaticDimension

Default Dimension
The default value for a given dimension.

UIKIT_EXTERN const CGFloat UITableViewAutomaticDimension;

Constants
UITableViewAutomaticDimension
Requests that UITableView use the default value for a given dimension.

Discussion of [UITableView UITableViewAutomaticDimension]
You return this value from UITableViewDelegate methods that request dimension metrics when you want UITableView to choose a default value. For example, if you return this constant in the tableView:heightForHeaderInSection: or tableView:heightForFooterInSection:, UITableView uses a height that fits the value returned from tableView:titleForHeaderInSection: or tableView:titleForFooterInSection: (if the title is not nil).

UITableView UITableViewAutomaticDimension example.
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(indexPath.section == CUSTOM_SECTION)
    {
        return CUSTOM_VALUE;
    }
    return UITableViewAutomaticDimension;
}

Example of [UITableView UITableViewAutomaticDimension].
 the code for your case would be:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    if (section == 3) {
       return 5;
    } else {
       return UITableViewAutomaticDimension;
    }
}

UITableView UITableViewAutomaticDimension example.
if you implement viewForHeaderInSection you must also implement heightForHeaderInSection. Implement it like this to make sure that it gets the right size for any number of lines:

-(float)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return UITableViewAutomaticDimension;
}

End of UITableView UITableViewAutomaticDimension example article.