环境: ios 9.3.1 / iphone6plus / Xcode8.0
一.系统标题的设置
1. self.title = @"标题" ;
2. self.navigationItem.title = @"标题" ;
上面两种方法没有太多的门道,分别为两个控制器属性变量,设置一个即可,如果两个都设置了,以程序执行顺序的在后面的那一个为准。
还可以设置标题属性:
[self.navigationController.navigationBar setTitleTextAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:26],NSForegroundColorAttributeName:[UIColor whiteColor]}] ;
3.自定义的标题设置
如果忍受不了系统的种种限制,那么可以自己创建一个UILabel
来替换掉导航中原有的titleView
:
UILabel * titleLabel = [[UILabel alloc]init];
titleLabel.frame = CGRectMake(0, 0, 70, 40)];
titleLabel.text = @"标题";
titleLabel.textColor = [UIColor whiteColor];
titleLabel.font = [UIFont systemFontOfSize:15];
self.navigationItem.titleView = titleLabel;
二 . UISearchBar的背景颜色
在使用UISearchBar的时候发现通过searchBar.backgroundColor = [UIColor redColor];
这样的代码根本无法达到修改UISearchBar
背景颜色的目的;于是一番百度之下找到解决方案:
UISearchBar * searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0,84, self.view.frame.size.width, 44)];
[searchBar setShowsCancelButton:YES animated:YES];
searchBar.backgroundImage = [self imageWithColor: RGBCOLOR(240, 240, 240) size:searchBar.bounds.size];
searchBar.placeholder = @"城市名、拼音首字母";
[self.view addSubview:searchBar];
//取消searchbar背景色
- (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size
{
CGRect rect = CGRectMake(0, 0, size.width, size.height);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
实例
感谢来自脚本之家的文章:脚本之家
网友评论