This commit is contained in:
2025-11-17 14:53:23 +08:00
parent d9bfc30c88
commit 1d215ffdb3
19 changed files with 208 additions and 39 deletions

View File

@@ -23,6 +23,8 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, strong, readonly) UILabel *kb_titleLabel;
/// 自定义导航栏左侧返回按钮(懒加载)。
@property (nonatomic, strong, readonly) UIButton *kb_backButton;
/// 自定义导航栏右侧按钮(懒加载,默认 hidden = YES
@property (nonatomic, strong, readonly) UIButton *kb_rightButton;
@end

View File

@@ -16,6 +16,7 @@
@property (nonatomic, strong) UIView *kb_navContentView; // 44 便
@property (nonatomic, strong) UILabel *kb_titleLabelInternal; //
@property (nonatomic, strong) UIButton *kb_backButtonInternal; //
@property (nonatomic, strong) UIButton *kb_rightButtonInternal; //
@property (nonatomic, strong) MASConstraint *kb_navHeightConstraint; //
@end
@@ -75,12 +76,22 @@
make.width.height.mas_equalTo(32);
}];
//
[self.kb_navContentView addSubview:self.kb_rightButtonInternal];
[self.kb_rightButtonInternal mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.kb_navContentView).offset(-12);
make.centerY.equalTo(self.kb_navContentView);
// /
make.height.mas_equalTo(32);
}];
//
[self.kb_navContentView addSubview:self.kb_titleLabelInternal];
[self.kb_titleLabelInternal mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.equalTo(self.kb_navContentView);
make.centerY.equalTo(self.kb_navContentView);
make.left.greaterThanOrEqualTo(self.kb_backButtonInternal.mas_right).offset(8);
make.right.lessThanOrEqualTo(self.kb_rightButtonInternal.mas_left).offset(-8);
}];
// VC title
@@ -116,6 +127,7 @@
- (UIView *)kb_navView { return self.kb_navViewInternal; }
- (UILabel *)kb_titleLabel { return self.kb_titleLabelInternal; }
- (UIButton *)kb_backButton { return self.kb_backButtonInternal; }
- (UIButton *)kb_rightButton { return self.kb_rightButtonInternal; }
#pragma mark - Lazy
@@ -158,6 +170,19 @@
return _kb_backButtonInternal;
}
- (UIButton *)kb_rightButtonInternal {
if (!_kb_rightButtonInternal) {
_kb_rightButtonInternal = [UIButton buttonWithType:UIButtonTypeCustom];
_kb_rightButtonInternal.hidden = YES; //
_kb_rightButtonInternal.adjustsImageWhenHighlighted = YES;
_kb_rightButtonInternal.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
_kb_rightButtonInternal.titleLabel.font = [UIFont systemFontOfSize:14];
[_kb_rightButtonInternal setTitleColor:[UIColor colorWithHex:KBBlackValue]
forState:UIControlStateNormal];
}
return _kb_rightButtonInternal;
}
- (void)kb_onBack {
if (self.navigationController && self.navigationController.viewControllers.count > 1) {
[self.navigationController popViewControllerAnimated:YES];