UISearchBar的使用,在導(dǎo)航欄上添加搜索框:
UISearchBar *searchBar = [[UISearchBar alloc] init];
searchBar.placeholder = @"搜索";
searchBar.showsCancelButton = YES; //顯示關(guān)閉按鈕
//這個主要是為了把cancel按鈕改變成中文的旗芬,如果在plist文件中設(shè)置過舌胶,則不需要此處
UIButton *cancelBtn = [searchBar valueForKey:@"cancelButton"]; //首先取出cancelBtn
//這樣就可以隨便設(shè)置這個按鈕了
[cancelBtn setTitle:@"取消" forState:UIControlStateNormal];
searchBar.searchBarStyle = UISearchBarStyleMinimal; //去掉searchBar的周邊顏色
searchBar.frame = CGRectMake(0, 7, [UIScreen mainScreen].bounds.size.width, 30);
searchBar.delegate = self;
self.navigationItem.titleView = searchBar;
改變返回按鈕的顏色
項目中使用到了web頁面,由于web頁面可能背景色不同疮丛,想要使導(dǎo)航欄的背景色和web的背景色一致幔嫂,此時返回按鈕的文案顏色以及‘返回箭頭’顏色可能也需要改變辆它;
如果直接設(shè)置返回按鈕的顏色,確實(shí)可以改變婉烟,但是如果自定義了返回按鈕文案娩井,下面的方法就沒有效果了
self.navigationController.navigationBar.tintColor = [UIColor redColor];
如果在push到web頁面之前,設(shè)置返回按鈕按鈕的文案似袁,如下:
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = item;
這樣如果有很多個頁面都push到了這個web頁面洞辣,會很不靈活
返回箭頭
和返回
我是自定義了一個View,然后把自定義的View轉(zhuǎn)換成圖片作為按鈕的背景圖昙衅,而按鈕又作為返回按鈕leftBarButtonItem
扬霜,返回箭頭我是通過UIBezierPath畫出來的;下面是返回箭頭的繪制:
- (void)drawRect:(CGRect)rect {
if (!self.backColor) {
self.backColor = [UIColor redColor];
}
[self.backColor set]; //設(shè)置線條顏色
UIBezierPath *path = [UIBezierPath bezierPath];
path.lineWidth = 1.8;
path.lineCapStyle = kCGLineCapRound; //線條拐角
path.lineJoinStyle = kCGLineJoinRound; //終點(diǎn)處理
[path moveToPoint:CGPointMake(11.0, 10.0)];//起點(diǎn)
// Draw the lines
[path addLineToPoint:CGPointMake(1.0, 20.0)];
[path addLineToPoint:CGPointMake(11.0, 30.0)];
[path stroke];//Draws line 根據(jù)坐標(biāo)點(diǎn)連線
UILabel *backLabel = [[UILabel alloc] init];
backLabel.text = @"返回";
backLabel.frame = CGRectMake(13, 0, 40, 40);
backLabel.font = [UIFont systemFontOfSize:17];
backLabel.textColor = self.backColor;
[self addSubview:backLabel];
}
UIView轉(zhuǎn)換成Image的方法:
- (UIImage *)viewToImage:(UIView *)view {
CGSize size = view.bounds.size;
// 下面的方法:第一個參數(shù)表示區(qū)域大卸妗著瓶;第二個參數(shù)表示是否是非透明的如果需要顯示半透明效果,需要傳NO啼县,否則傳YES材原;第三個參數(shù)是屏幕密度
UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
UISearchBar和返回按鈕顏色改變的具體實(shí)現(xiàn)就不多說了,如果需要季眷,請點(diǎn)擊Demo地址