新增控制堆栈视图以优化房间推荐视图的布局,调整约束以确保 UI 元素的正确排列。更新 miniStackView 和 exitStackView 的内容压缩和拥抱优先级,提升布局的灵活性和可维护性。

This commit is contained in:
edwinQQQ
2025-09-16 16:08:28 +08:00
parent 8d8beeaa2d
commit eb0feb1b73

View File

@@ -20,6 +20,7 @@
@property (nonatomic, strong) UIToolbar *toolBar;
@property (nonatomic, strong) UITableView *tableView;
@property (nonatomic, strong) UIStackView *controlStackView;
@property (nonatomic, strong) UIStackView *miniStackView;
@property (nonatomic, strong) UIStackView *exitStackView;
@@ -50,12 +51,16 @@
#pragma mark - lifeCycle
- (void)setUpUI {
[self addSubview:self.toolBar];
[self addSubview:self.miniStackView];
[self addSubview:self.exitStackView];
[self addSubview:self.controlStackView];
[self.miniStackView addArrangedSubview:self.miniButton];
[self.miniStackView addArrangedSubview:self.miniLabel];
[self.exitStackView addArrangedSubview:self.exitButton];
[self.exitStackView addArrangedSubview:self.exitLabel];
[self.controlStackView addArrangedSubview:self.miniStackView];
[self.controlStackView addArrangedSubview:self.exitStackView];
[self addSubview:self.recommentLabel];
[self addSubview:self.tableView];
}
@@ -70,14 +75,10 @@
[self.toolBar mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.leading.trailing.bottom.mas_equalTo(self);
}];
[self.miniStackView mas_makeConstraints:^(MASConstraintMaker *make) {
[self.controlStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kStatusBarHeight + 8);
make.leading.mas_equalTo(self).mas_offset(36);
}];
[self.exitStackView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(kStatusBarHeight + 8);
make.leading.mas_equalTo(self.miniStackView.mas_trailing).mas_offset(65);
make.leading.trailing.mas_equalTo(self);
}];
@@ -88,7 +89,7 @@
make.width.height.mas_equalTo(54);
}];
[self.recommentLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.miniStackView.mas_bottom).mas_offset(16);
make.top.mas_equalTo(self.controlStackView.mas_bottom).mas_offset(16);
make.leading.mas_equalTo(11);
}];
[self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
@@ -179,8 +180,18 @@
return _exitButton;
}
- (UIStackView *)controlStackView {
if (!_controlStackView) {
_controlStackView = [[UIStackView alloc] init];
_controlStackView.axis = UILayoutConstraintAxisHorizontal;
_controlStackView.distribution = UIStackViewDistributionEqualSpacing;
_controlStackView.alignment = UIStackViewAlignmentCenter;
_controlStackView.spacing = 65;
_controlStackView.layoutMargins = UIEdgeInsetsMake(0, 36, 0, 36);
_controlStackView.layoutMarginsRelativeArrangement = YES;
}
return _controlStackView;
}
- (UIStackView *)miniStackView {
if (!_miniStackView) {
@@ -189,9 +200,12 @@
_miniStackView.distribution = UIStackViewDistributionFill;
_miniStackView.alignment = UIStackViewAlignmentCenter;
_miniStackView.spacing = 17;
[_miniStackView setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
[_miniStackView setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
}
return _miniStackView;
}
- (UIStackView *)exitStackView {
if (!_exitStackView) {
_exitStackView = [[UIStackView alloc] init];
@@ -199,12 +213,12 @@
_exitStackView.distribution = UIStackViewDistributionFill;
_exitStackView.alignment = UIStackViewAlignmentCenter;
_exitStackView.spacing = 17;
[_exitStackView setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
[_exitStackView setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
}
return _exitStackView;
}
- (UILabel *)miniLabel {
if (!_miniLabel) {
_miniLabel = [[UILabel alloc] init];
@@ -212,6 +226,7 @@
_miniLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
_miniLabel.textAlignment = NSTextAlignmentCenter;
_miniLabel.textColor = [UIColor whiteColor];
_miniLabel.numberOfLines = 0;
}
return _miniLabel;
}
@@ -223,6 +238,7 @@
_exitLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium];
_exitLabel.textAlignment = NSTextAlignmentCenter;
_exitLabel.textColor = [UIColor whiteColor];
_exitLabel.numberOfLines = 0;
}
return _exitLabel;
}