iOS - Custom table cell not full width of UITableView

13,086

Solution 1

Can you post the code please .

Did you enable the Use Auto layout and Use Size Classes as below do that first in both table view and table view cell .and tell me your problem

enter image description here

1)After that select both image and label and do as below

enter image description here

2) Select the image and do below

enter image description here

3) select the label an do the following

enter image description here

Can you check the link below:

Table cell content(title) moving left after selecting cell

Solution 2

Instead of "filling", auto layout constraints to leading and trailing space to constant 0 and make sure they're not relative to margins.

Solution 3

select your table view cell's connection inspector and check if you haven't connected editingAccessoryView by mistake

enter image description here

Share:
13,086
Josh York
Author by

Josh York

Updated on July 26, 2022

Comments

  • Josh York
    Josh York almost 2 years

    I may be going about this wrong. So I have created a UITableView that essentially has a auto-layout trailing space set to the main view. I am creating a custom cell for this table so I drug on a prototype cell, customized it, and created my class for it. That is all working just fine.

    What I can't seem to solve is the custom cell isn't going the full width of the actual table cell so a white background just shows up. If I don't use the custom cell the entire width table cell gets utilized.

    I set the constraints for the cell content so that the background image should fill the cell.

    What am I doing wrong? Let me know what you need to help solve this.

    ProfileCustomCell.h

    #import <UIKit/UIKit.h>
    
    @interface ProfileCustomCell : UITableViewCell {
    
    }
    
    @property (nonatomic, strong) IBOutlet UILabel *nameLabel;
    @property (nonatomic, strong) IBOutlet UIImageView *profileImageView;
    
    @end
    

    ProfileCustomCell.m

    #import "ProfileCustomCell.h"
    
    @implementation ProfileCustomCell
    
    - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    
        self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    
        if (self) {
            self.nameLabel.text = nil;
        }
    
        return self;
    
    }
    
    - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
        [super setSelected:selected animated:animated];
    }
    
    @end
    

    UITableView

    [tableView registerNib:[UINib nibWithNibName:@"ProfileCustomCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"Cell"];
    
    [tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
    
    ProfileCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    
    cell.nameLabel.text = [NSString stringWithFormat:@"%@", [child objectForKey:@"first_name"]];
    [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
    

    enter image description here

  • Josh York
    Josh York almost 9 years
    This worked perfectly. I originally had a xib file or the cell, but tried doing it in the storyboard, but just didn't work the way I wanted. Going back to the xib file and setting Use Auto layout and Use Size Classes was what I was missing. Thanks!
  • Nischal Hada
    Nischal Hada almost 9 years
    You are welcome. if u have got problem with auto layout and u have posted it on stack overflow feel free to inform me .. i m fond of solving Autolayout issues