娱乐大咖项目2- 总结
生活随笔
收集整理的這篇文章主要介紹了
娱乐大咖项目2- 总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2.1 - 設置導航欄
2.1.2 - 封裝UIBarButtonItem的,通過其分類來創建一個類方法,以快速設置導航欄上的Item
+(instancetype)itemWithImage:(NSString *)image highimage:(NSString *)highimage target:(id)target action:(SEL)action {UIButton *Btn = [[UIButton alloc]init];[Btn setBackgroundImage:[UIImage imageNamed:image] forState:UIControlStateNormal];[Btn setBackgroundImage:[UIImage imageNamed:highimage] forState:UIControlStateHighlighted];[Btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];Btn.size = Btn.currentBackgroundImage.size;return [[self alloc]initWithCustomView:Btn]; }?
2.2 - 自定義導航欄控制器,要改變當控制器被push時,返回鍵為自定義返回鍵
/*** 可以在這個方法中攔截所有push進來的控制器*/ - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {if (self.childViewControllers.count > 0) {// 如果push進來的不是第一個控制器UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];[backBtn setTitle:@"返回" forState:UIControlStateNormal];[backBtn setImage:[UIImage imageNamed:@"navigationButtonReturn"] forState:UIControlStateNormal];[backBtn setImage:[UIImage imageNamed:@"navigationButtonReturnClick"] forState:UIControlStateHighlighted];backBtn.size = CGSizeMake(70, 30);// 讓按鈕內部的所有內容左對齊backBtn.contentEdgeInsets = UIEdgeInsetsMake(0, -50, 0, 0);[backBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];[backBtn setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];[backBtn addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:backBtn];// 隱藏tabbarviewController.hidesBottomBarWhenPushed = YES;}// 這句super的push要放在后面,讓view controller可以覆蓋在上面leftbarbuttonitem [super pushViewController:viewController animated:animated];}為了實現當有push進來一個新的控制器進來時,返回鍵不是系統自定義的藍色控制器,就得在自定義導航控制器中重寫push的方法,以此來達到攔截Push的過程。
?
2.2.2 - 設置導航欄的背景色,該項目采用的是圖片
/*** 當第一次使用這個類的時候會調用一次*/ + (void)initialize {// 當導航欄用在XMGNavigationController中, appearance設置才會生效// UINavigationBar *bar = [UINavigationBar appearanceWhenContainedIn:[self class], nil];// 視情況而定UINavigationBar *bar = [UINavigationBar appearance];[bar setBackgroundImage:[UIImage imageNamed:@"navigationbarBackgroundWhite"] forBarMetrics:UIBarMetricsDefault]; }在這里面設置的原因,是因為如果在viewDidload中寫的話,就會調用四次,而這里面寫就自會調用一次,優化性能。
?
轉載于:https://www.cnblogs.com/zw-ios/p/5249517.html
總結
以上是生活随笔為你收集整理的娱乐大咖项目2- 总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: maven使用出现的错误
- 下一篇: 使用pm2常见问题