gpt4 book ai didi

ios - safeAreaLayoutGuide 不适用于 systemLayoutSizeFittingSize

转载 作者:行者123 更新时间:2023-11-29 05:56:14 26 4
gpt4 key购买 nike

我在 iOS 11 中使用安全区域,如下所示:

code picture

/** mainTableView **/
[self.view addSubview:self.mainTableView];
[self.mainTableView makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.view.left);
make.right.equalTo(self.view.right);
if (@available(iOS 11.0,*)) {
self.mainTableViewTop = make.top.equalTo(self.view.mas_safeAreaLayoutGuideTop).offset(navHeight).priorityLow();
self.mainTableViewBottom = make.bottom.equalTo(self.view.mas_safeAreaLayoutGuideBottom).offset(0).priorityLow();
}else{
self.mainTableViewTop = make.top.equalTo(self.view.top).offset(navHeight + iAStatusHeight).priorityLow();
self.mainTableViewBottom = make.bottom.equalTo(self.view.bottom).offset(-tabHeight);
}
}];

然后在 iPhone X 中运行

iPhone X layout picture

那么,顶部约束和底部约束在哪里?

适配器没有问题。但是当我想获取 View 的高度时,它总是返回0。

像这样:

我想计算我 View 中tableview的高度:

tableview height

[self.mainTableView reloadData];
dispatch_async(dispatch_get_main_queue(),^{
if ([self isShowRefreshFooter]) {
CGFloat mainTableHeight = [self.mainTableView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
CGFloat contentHeight = self.mainTableView.contentSize.height;
if (contentHeight < mainTableHeight) {
self.reFreshFooter.hidden = YES;
}else{
self.reFreshFooter.hidden = YES;
}
}
});

但是mainTableHeight总是返回0

return 0

请给我一些帮助

最佳答案

修复以下问题:

第 1 步:

_detailTableView.estimatedRowHeight = UITableViewAutomaticDimension;

第 2 步:

[bgView addSubview:self.detailTableView];
[self.detailTableView makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(titleLabel.bottom).offset(16).priorityHigh();
make.left.equalTo(bgView.left).offset(0);
make.right.equalTo(bgView.right).offset(0);
make.bottom.equalTo(bgView.bottom).offset(0);
make.height.equalTo(100).priorityHigh();
}];

[self.detailTableView reloadData];
[self.detailTableView layoutIfNeeded];
CGFloat contentHeight = self.detailTableView.contentSize.height;
[self.detailTableView updateConstraints:^(MASConstraintMaker *make) {
make.height.equalTo(contentHeight).priorityHigh();
}];

关于ios - safeAreaLayoutGuide 不适用于 systemLayoutSizeFittingSize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55133340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com