change width of a uitableviewcell

13,663

Solution 1

Table views change the frame of cells when they are added to the table view. If you want to change the width of a cell, you should either change the width of the table, or change the width of the contentView in the cell.

Solution 2

If you want to change the height of the cell the implement the delegate method tableView:heightForRowAtIndexPath:.

If you want to change the width then you should only change it visually (set transparent background for all cell's subviews except the ones that shouldn't be) or, if all the cells should have the same width, you might change the entire table view's width, as @Jerry Jones has advised...

Share:
13,663
alex
Author by

alex

Updated on June 04, 2022

Comments

  • alex
    alex almost 2 years

    I try to change the with of a cell in a tableview, I don't do a custom cell, I just subclass uitableviewcell.

    This is the class

    @implementation customCell
    
    - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    
        if (self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier]) {
    
            CGRect nouveauframe = CGRectMake(0.0, 0.0, 44,44);
    
            self.frame = nouveauframe;
    
        }
        return self;
    }
    
    -(void)dealloc
    {
    
        [super dealloc];
    }
    
    @end
    

    and this is when I create my cell in the cellForRowAtIndexPath:

    static NSString *CellIdentifier = @"customCell";
    
    customCell *cell = (customCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    
    if (cell == nil) {
        cell = [[[customCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
    }
    
    // Configure the cell...
    
    [[cell textLabel]setText:[[[[Mission singletonMission] getObjectDataHistoireEncours] objectAtIndex:indexPath.row] valueForKey:[[langue singletonLangue] valeurBalise: @"_nom_label"]]];
    
    cell.detailTextLabel.text = [[[[Mission singletonMission] getObjectDataHistoireEncours] objectAtIndex:indexPath.row] valueForKey:[[langue singletonLangue] valeurBalise: @"_valeur"]];
    
    cell.userInteractionEnabled = FALSE;
    
    retour = [cell retain];
    

    but the width of my cell don't change, why?