使用 Masonry 自动布局 UITableViewCell
Use Masonry autolayout UITableViewCell
我正在尝试使用自动布局自动调整 table 单元格的大小。但似乎 TableView 忽略了高度限制。
在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。
每当我们向具有可变高度的组件添加约束时,不要将其从 bottom.Just 中添加一些恒定高度约束并更新该恒定值。
make.height.constant = 一些值
并更新视图约束
使用其中之一
- (void)updateConstraintsIfNeeded NS_AVAILABLE_IOS(6_0); // 从底部向上更新以接收器为根的视图层次结构的约束。 UIWindow 的实现会在必要时首先创建一个布局引擎。
- (void)updateConstraints NS_AVAILABLE_IOS(6_0); // 重写它以在约束更新过程中调整您的特殊约束 pass
- (BOOL)needsUpdateConstraints NS_AVAILABLE_IOS(6_0);
- (void)setNeedsUpdateConstraints NS_AVAILABLE_IOS(6_0);
我正在尝试使用自动布局自动调整 table 单元格的大小。但似乎 TableView 忽略了高度限制。
在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。
每当我们向具有可变高度的组件添加约束时,不要将其从 bottom.Just 中添加一些恒定高度约束并更新该恒定值。
make.height.constant = 一些值
并更新视图约束
使用其中之一
- (void)updateConstraintsIfNeeded NS_AVAILABLE_IOS(6_0); // 从底部向上更新以接收器为根的视图层次结构的约束。 UIWindow 的实现会在必要时首先创建一个布局引擎。
- (void)updateConstraints NS_AVAILABLE_IOS(6_0); // 重写它以在约束更新过程中调整您的特殊约束 pass
- (BOOL)needsUpdateConstraints NS_AVAILABLE_IOS(6_0);
- (void)setNeedsUpdateConstraints NS_AVAILABLE_IOS(6_0);