Hiren kanetiya
Hiren kanetiya

Reputation: 251

In UItableview How to Expand and collapse particular TableviewCell dynamically

In my app I am trying to display Mkmapview in UITableView. When I tap the cell, it has to expand and show the map. Then if I tap another cell, it should act again expand and show gallery view , the previous cell must collapse and map should be hide.

thanks in advance,

Upvotes: 0

Views: 411

Answers (1)

yusuke024
yusuke024

Reputation: 2219

You have to keep track of the state (or height) of the expanding/collapsing cell. Then report that height in tableView:heightForRowAtIndexPath:. Then add the code below to trigger the resizing.

[self.tableView beginUpdates];
[self.tableView endUpdates];

For example:

- (void)toggleMapCell {
    _mapCellExpanded = !_mapCellExpanded;
    if (_mapCellExpanded)
        _mapCellHeight = 200.0;
    else
        _mapCellHeight = 44.0;
    [self.tableView beginUpdates];
    [self.tableView endUpdates];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    if ([indexPath isEqualTo:_mapCellIndexPath])
        return _mapCellHeight;
    else
        return 44.0;
}

If you have to re-layout the cell's content. I think the best place is to do it in the cell's layoutSubviews.

Upvotes: 1

Related Questions