IOS --- 难以改变的控件属性

环境: 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;
}

IOS --- 难以改变的控件属性_第1张图片
实例

感谢来自脚本之家的文章: 脚本之家

你可能感兴趣的:(IOS --- 难以改变的控件属性)