我在表格视图单元格上使用 Masonry,现在我有一个 UITableViewCell,它是一个视图容器,如下所示:
*表视图(cellForRowAtIndexPath):
MasonryTestTableViewCell *masonryCell = [tableView dequeueReusableCellWithIdentifier:@"masonryCell"];
if (masonryCell == nil) {
masonryCell = [[MasonryTestTableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"masonryCell"];
}
[masonryCell addSubview:[self createViewForCell]];
return masonryCell;
*createViewForCell 方法(也使用砖石):
-(UIView *) createViewForCell{
self.textLabel = [[UILabel alloc]init];
[self.textLabel setLineBreakMode:NSLineBreakByWordWrapping];
[self.textLabel setTextAlignment:NSTextAlignmentLeft];
[self.textLabel setNumberOfLines:0];
[self.textLabel setText:@"TEST TEXT"];
[self.textLabel setPreferredMaxLayoutWidth:[UIScreen mainScreen].bounds.size.width];
[self addSubview:self.textLabel];
[self.textLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.mas_left).with.offset(10);
make.bottom.equalTo(self.mas_bottom).with.offset(-10);
make.right.equalTo(self.mas_right).with.offset(-10);
make.top.equalTo(self.mas_top).with.offset(10);
}];
self.textLabel.layer.borderColor = [UIColor grayColor].CGColor;
self.textLabel.layer.borderWidth = 3;
}
*@implementation MasonryTestTableViewCell
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
return [super initWithStyle:style reuseIdentifier:reuseIdentifier];
}
- (void) setContent:(UIView *)view{
[self setBackgroundColor:[UIColor greenColor]];
[self addSubview:view];
[view mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.mas_top).with.offset(kYPosition);
make.bottom.equalTo(self.mas_bottom).with.offset(-kYPosition);
make.left.equalTo(self.mas_left).with.offset(kCellPadding);
make.right.equalTo(self.mas_right).with.offset(-kCellPadding);
}];
}
我现在面临的问题是单元格没有正确上升,它达到一个点,如果我在 textLabel 上设置长文本,它不会增加单元格高度,我无法修复这个,你知道人工智能是否应该做其他事情来让它工作?