Изменение размера UITableViewCell ширины содержимого.

Я хочу сделать ширину UITableViewCell равной 280 и начать с (20,0)

это означает, что для ячейки должно быть 20 точек на оси X.

Однако, когда я изменяю фрейм просмотра содержимого ячейки таблицы - вся ячейка находится за каким-то черным квадратом нужного мне размера, и моя новая ячейка выглядит следующим образом

Это мой код для этого: в моем viewDidLoad таблицы ViewController

[tableView registerNib:[UINib nibWithNibName:[self layoutName] bundle:[NSBundle mainBundle]] forCellReuseIdentifier:[self cellIdentifier]];

инициализация ячейки

    -(void)initialize{
//    [self setBackgroundColor:[UIColor clearColor]];
//    [self setTintColor:[UIColor clearColor]];
    self.backgroundView = [[WBChildCellBackground alloc]initWithFrame:CGRectInset([self frame], 20, 0)];
    [self.backgroundView setHidden:YES];
   self.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
    self.autoresizingMask =UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;

    self.contentView.contentMode = UIViewContentModeRedraw;
    self.autoresizesSubviews = YES;
    self.contentView.autoresizesSubviews = YES;
    self.contentMode = UIViewContentModeRedraw;
    self.originalFrame = self.frame;

}

И тогда я называю этот код:

-(void)layoutSubviews{
    [super layoutSubviews];
    CGRect frame = self.bounds;
        frame.origin.x = frame.origin.x + self.cellInset;
        frame.size.width = frame.size.width - 2*self.cellInset;
      if(self.cellInset == 0){
            frame = self.originalFrame;
       }
    self.contentView.bounds = frame;
    [self.contentView layoutSubviews];

}
-(void)setCellInset:(CGFloat)cellInset{
    _cellInset = cellInset;
    [self layoutSubviews];
}

почему моя клетка не меняется так, как я хочу?

0 ответов

Другие вопросы по тегам