Files
peko-ios/YuMi/Modules/YMNewHome/View/CustomView/XPNewHomeNavView.m
2023-09-12 18:04:05 +08:00

153 lines
4.6 KiB
Objective-C

//
// XPNewHomeNavView.m
// YuMi
//
// Created by YuMi on 2022/10/8.
//
#import "XPNewHomeNavView.h"
///Third
#import <Masonry/Masonry.h>
///Tool
#import "DJDKMIMOMColor.h"
#import "YUMIMacroUitls.h"
@interface XPNewHomeNavView ()
@property (nonatomic,strong) UIView *searchView;
@property (nonatomic,strong) UIImageView *searchImageView;
@property (nonatomic,strong) UILabel *searchLabel;
@property (nonatomic,strong) UIButton *rankButton;
@property (nonatomic,strong) UIButton *opeRoomButton;
@end
@implementation XPNewHomeNavView
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
[self addSubview:self.searchView];
[self addSubview:self.opeRoomButton];
[self addSubview:self.rankButton];
[self.searchView addSubview:self.searchImageView];
[self.searchView addSubview:self.searchLabel];
}
- (void)initSubViewConstraints {
[self.searchView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self).offset(15);
make.height.mas_equalTo(32);
make.top.mas_equalTo(self).offset(statusbarHeight + 6);
make.right.mas_equalTo(self.rankButton.mas_left).offset(-15);
}];
[self.searchImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(16);
make.height.mas_equalTo(16);
make.left.mas_equalTo(self.searchView).offset(15);
make.centerY.mas_equalTo(self.searchView);
}];
[self.searchLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.searchImageView.mas_right).offset(7);
make.centerY.mas_equalTo(self.searchView);
}];
[self.opeRoomButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(30);
make.height.mas_equalTo(32);
make.centerY.mas_equalTo(self.searchView);
make.right.mas_equalTo(self).offset(-15);
}];
[self.rankButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.centerY.mas_equalTo(self.opeRoomButton);
make.right.mas_equalTo(self.opeRoomButton.mas_left).offset(-12);
}];
}
#pragma mark - Event Response
- (void)openRoomButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPNewHomeNavView:didClickOpenRoom:)]) {
[self.delegate xPNewHomeNavView:self didClickOpenRoom:sender];
}
}
- (void)rankButtonAction:(UIButton *)sender {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPNewHomeNavView:didClickRank:)]) {
[self.delegate xPNewHomeNavView:self didClickRank:sender];
}
}
- (void)tapRecognizer {
if (self.delegate && [self.delegate respondsToSelector:@selector(xPNewHomeNavView:didClickSearch:)]) {
[self.delegate xPNewHomeNavView:self didClickSearch:self.searchView];
}
}
#pragma mark - Getters And Setters
- (UIView *)searchView {
if (!_searchView) {
_searchView = [[UIView alloc] init];
_searchView.backgroundColor = [UIColor colorWithWhite:1 alpha:0.5];
_searchView.layer.cornerRadius = 16;
_searchView.layer.masksToBounds = YES;
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapRecognizer)];
[_searchView addGestureRecognizer:tap];
}
return _searchView;
}
- (UIImageView *)searchImageView {
if (!_searchImageView) {
_searchImageView = [[UIImageView alloc] init];
_searchImageView.userInteractionEnabled = YES;
_searchImageView.image = [UIImage imageNamed:@"home_nav_search"];
}
return _searchImageView;
}
- (UILabel *)searchLabel {
if (!_searchLabel) {
_searchLabel = [[UILabel alloc] init];
_searchLabel.font = [UIFont systemFontOfSize:12];
_searchLabel.textColor = [DJDKMIMOMColor secondTextColor];
_searchLabel.text = YMLocalizedString(@"XPNewHomeNavView0");
}
return _searchLabel;
}
- (UIButton *)opeRoomButton {
if (!_opeRoomButton) {
_opeRoomButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_opeRoomButton setImage:[UIImage imageNamed:@"home_nav_open_room"] forState:UIControlStateNormal];
[_opeRoomButton setImage:[UIImage imageNamed:@"home_nav_open_room"] forState:UIControlStateSelected];
[_opeRoomButton addTarget:self action:@selector(openRoomButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _opeRoomButton;
}
- (UIButton *)rankButton {
if (!_rankButton) {
_rankButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_rankButton setImage:[UIImage imageNamed:@"home_nav_rank"] forState:UIControlStateNormal];
[_rankButton setImage:[UIImage imageNamed:@"home_nav_rank"] forState:UIControlStateSelected];
[_rankButton addTarget:self action:@selector(rankButtonAction:) forControlEvents:UIControlEventTouchUpInside];
}
return _rankButton;
}
@end