How can I change a cell's textLabel frame?

I’ve tried nearly everything, but I just can’t seem to move the cell.textLabel property down a little bit. I’ve attached a screenshot below and I’ve tried nearly everything I could find.

I’ve tried changing the .frame property directly, attempted at modifying if via using the “- (void)tableView:(UITableView *)tableView willDisplayCell” method”. I’ve also tried allocating a custom label. I could move the custom label, but it wouldn’t go into separate lines like the original textLabel. I just need to move the pictured multi line label a bit down.

  • Why does UINavigationBar steal touch events?
  • UIView viewwithtag method in swift
  • My button is centered for iPhone 6 and 6 plus, but not for iPhone 5
  • UILabel Text with Multiple Font Colors
  • UIView dynamic height depending on Label Height
  • Center multiple UILabels on a line
  • Any help is appreciated!

    enter image description here

    4 Solutions Collect From Internet About “How can I change a cell's textLabel frame?”

    The only way to do this is to use a UITableViewCell subclass and override -layoutSubviews. In this method, you’ll want to call [super layoutSubviews], and then do any frame tweaks that you want to the label.

    override layoutSubviews for your UITableViewCell

    - (void)layoutSubviews {
        [super layoutSubviews];
    
        CGSize size = self.bounds.size;
        CGRect frame = CGRectMake(4.0f, 4.0f, size.width, size.height); 
        self.textLabel.frame =  frame;
        self.textLabel.contentMode = UIViewContentModeScaleAspectFit;
    }
    

    or you can simply make your own UILabel object, and add it to cell.contentView as a subview.

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(4, 4, 30, 30)];
    [cell.contentView addSubview:label];
    [label release];
    

    I ended up adding a \n in the beginning of the string. Unfortunately I couldn’t get anything else to work.

    - (void)layoutSubviews {
        [super layoutSubviews];
    
        CGSize size = self.bounds.size;
        CGRect frame = CGRectMake(4.0f, 4.0f, size.width, size.height); 
        self.textLabel.frame =  frame;
    
        self.textLabel.textAlignment = NSTextAlignmentCenter;
    }