有时一个问题去搜索答案,答案五花八门,也许有的都能解决问题,但更多时间有的答案是已经失效了的.特总结这个文章,持续更新,也是给自己做一个记录.
1.导航栏透明;(xcode 6.3 + iOS 8.3)
现在越来越多的应用导航栏都是透明的,我也想尝试,遇到了不同的答案,我认为比较好的解决方案;
一般是写在viewDidLoad中,实际使用参考实际情况;
[self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:[[UIImage alloc]init]];
有文章提出的解决方案为随便一张图片 但是 BarMetrics 要设置为 UIBarMetricsCompact
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"我就是那张滥竽充数的图片"] forBarMetrics:UIBarMetricsCompact];
但是这样导航栏底部的那条线无法抹去其实既然那张照片不重要,那么用[[UIImage alloc] init] 初始化的空图其实是更好的选择了.
2.NSLog信息打印所在类和行(xcode 6.3 + iOS 8.3)
//#if 1 //1显示 NSLog 的具体位置 0不显示
//#define NSLog(FORMAT, ...) fprintf(stderr,"[%s:%d行] %s\n",[[[NSString stringWithUTF8String:__FILE__]lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT,##__VA_ARGS__] UTF8String]);
//#else
//#defineNSLog(FORMAT, ...) nil
//#endif
这样 在app要发布时 改为0,直接不打印log信息了 很方便.