2015-08-19 77 views
0

我想用自动布局自动调整表格单元格的大小。但似乎TableView忽略高度限制。使用砌体自动布局UITableViewCell

中的UITableViewCell

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 

self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
if (self) { 

     [self.icon mas_makeConstraints:^(MASConstraintMaker *make) { 

     make.top.equalTo(self.contentView).with.offset(10); 
     make.left.equalTo(self.contentView).with.offset(10); 
     make.width.equalTo(@70); 
//   make.height.equalTo(@70); 
     make.bottom.equalTo(self.contentView.mas_bottom).with.offset(10); 
    }]; 
    } 
} 

在UITableView的

XLTableViewCell * _cell = [[XLTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"1"]; 



-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 

    CGSize size = [_cell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize]; 
    NSLog(@"%f",size.height); 

    // size.height is 0.0f; 
    return size.height + 1; 
} 

我试图创建的UITableViewCell图像(70x70)。 image.top = 10,image.left = 10,image.bottom = 10.

回答

2

每当我们向可变高度的组件添加约束条件时,请不要将其限制在底部。只需添加一些常量高度约束并更新那个不变的价值。

make.height.constant =一些值

和更新视图约束使用它们中的一个

  • (无效)updateConstraintsIfNeeded NS_AVAILABLE_IOS(6_0)

    ; //根据接收器更新视图层次结构的底层约束。如果需要,UIWindow的实现首先创建一个布局引擎。

  • (void)updateConstraints NS_AVAILABLE_IOS(6_0); //覆盖此值以在约束更新过程中调整您的特殊约束条件
  • (BOOL)needsUpdateConstraints NS_AVAILABLE_IOS(6_0);
  • (void)setNeedsUpdateConstraints NS_AVAILABLE_IOS(6_0);
+0

'make.height.constant'常数不在类MASConstraint.LOL发现 NICE,'make.height.with.offset(70);'是在本 – xx11dragon

+0

有make.height的view.mas_height瞬间.constant – Kavita

+0

我使用make.height.with.offset(70);工作中。谢谢 – xx11dragon