ios自定義簡約導航欄
功能描述:提供導航標題,左右按鈕及點選功能。
做法
新建一個類,繼承自UIView。
在.h檔案中提供外界建立方法,標題顏色屬性
@interface PDtopBar : UIView
@property(nonatomic,strong)UIColor *titleColor;
@property(nonatomic,strong)UIColor *viewColor; // 背景色
@property(nonatomic,assign)BOOL hidden; //隱藏?
@property(nonatomic,strong)void(^gobackBlock)(); // 返回上一頁block
@property(nonatomic,strong)void(^clickRightBtnBlock)(); // 點選右按鈕block
// 提供外界建立方法
-(instancetype)initWithTitle:(NSString *)title rightBtnTitle:(NSString *)rightText;
@end
.m檔案中,宣告子控制元件
@interface PDtopBar()
@property(nonatomic,weak)UILabel *topTitleLabel; // 標題
@property(nonatomic,weak)UIButton *backBtn; // 左邊的返回按鈕
@property(nonatomic,weak)UIButton *rightBtn; // 右邊的按鈕
@end
實現建立方法
-(instancetype)initWithTitle:(NSString *)title rightBtnTitle:(NSString *)rightText{
if(self = [super init]){
self.backgroundColor = [UIColor whiteColor];
//位置,尺寸
self.frame = CGRectMake(0, 20, screenW, 44);
if(screenH == 812)
self.frame = CGRectMake(0, 44, screenW, 44); // 適配IphoneX
UILabel *toplabel = [[UILabel alloc] Label_color3:Font18 text:title];
toplabel.textAlignment = NSTextAlignmentCenter;
[self addSubview:toplabel];
_topTitleLabel = toplabel;
[_topTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerY.equalTo(self.mas_centerY);
make.centerX.equalTo(self.mas_centerX);
make.width.equalTo(self.mas_width).multipliedBy(0.6);
}];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn addTarget:self action:@selector(clickBack) forControlEvents:UIControlEventTouchUpInside];
[btn setImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal];
[self addSubview:btn];
_backBtn = btn;
[_backBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(self.mas_left).offset(5);
make.centerY.equalTo(_topTitleLabel.mas_centerY);
make.height.equalTo(@20);
make.width.equalTo(@50);
}];
if(rightText){
UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeCustom];
btn2.titleLabel.font = Font16;
[btn2 setTitleColor:Color333333 forState:UIControlStateNormal];
[btn2 addTarget:self action:@selector(clickRight) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:btn2];
_rightBtn = btn2;
[_rightBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.mas_right).offset(-5);
make.centerY.equalTo(_topTitleLabel.mas_centerY);
make.height.equalTo(@20);
make.width.equalTo(@50);
}];
}
}
return self;
}
點選事件處理
-(void)clickRight{
if(self.clickRightBtnBlock)
self.clickRightBtnBlock();
}
-(void)clickBack{
if(self.gobackBlock)
self.gobackBlock();
}
屬性樣式設定
標題顏色
-(void)setTitleColor:(UIColor *)titleColor{
self.topTitleLabel.textColor =titleColor;
}
背景色
-(void)setViewColor:(UIColor *)viewColor{
self.backgroundColor = viewColor;
}
隱藏屬性
-(void)setHidden:(BOOL)hidden{
self.hidden = hidden;
}
外界使用
建立時提供標題、右標題、左右按鈕的程式碼block即可。
總結:比較簡陋,只有基本的常用功能。請按需使用。
相關文章
- uniapp自定義導航欄APP
- 微信小程式自定義導航欄微信小程式
- iOS系統導航欄自定義標題動畫跳變解析iOS動畫
- 微信小程式自定義導航欄適配指南微信小程式
- HarmonyOS NEXT 5.0自定義增強版導航欄元件|鴻蒙ArkUI自定義標題欄元件鴻蒙UI
- 小程式自定義導航欄適配(完美版)
- iOS 導航欄的控制iOS
- flutter 自定義tab導航-頂部導航-底部導航Flutter
- 你還在發愁小程式自定義導航欄嗎?
- iOS專案開發實戰——自定義設定導航欄和狀態列背景iOS
- 自定義導航欄返回按鈕導致返回手勢失效問題
- 簡易的iOS導航欄顏色漸變方案iOS
- [小程式]高適應性的自定義導航欄開發思路
- iOS導航欄佈局相關iOS
- android 自定義狀態列和導航欄分析與實現Android
- 線上直播原始碼,自定義導航欄並固定居中對齊原始碼
- iOS定製UISearchBar導航欄 同步iOS11iOSUI
- iOS隱藏導航欄正確做法iOS
- iOS 超Easy實現 漸變導航欄iOS
- iOS逆向之分析微信導航欄實現iOS
- iOS隱藏導航欄的返回按鈕iOS
- html+css 製作簡易導航欄HTMLCSS
- iOS 導航欄顏色透明度漸變iOS
- iOS狀態列和導航欄的設定iOS
- 名錶維修保養:uniapp 微信小程式自定義導航欄 詳細步驟APP微信小程式
- WordPresscategory導航欄Go
- mpvue中小程式自定義導航元件開發指南Vue元件
- 物件導向 約束、自定義異常、加密物件加密
- svelte自定義元件|導航條Navbar及選單欄Tabbar元件tabBar
- iOS導航欄標題錯亂的解決方法iOS
- qml 導航欄TabBar 工具欄ToolBartabBar
- 自定義右鍵導航選單程式碼例項
- GitHub 導航欄加強Github
- HTML橫向導航欄HTML
- Flutter 導航欄AppBarFlutterAPP
- Tablayout實現導航欄TabLayout
- bootstrap導航欄學習boot
- 一個簡單易用的 Android 導航欄TitleBarAndroid