1.首先来说一下相册中常遇到的问题,那就是修改导航栏的颜色,导航返回按钮的颜色
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
//设置导航栏背景颜色
picker.navigationBar.barTintColor = [UIColor colorWithRed:20.f/255.0 green:24.0/255.0 blue:38.0/255.0 alpha:1];
//设置右侧取消按钮的字体颜色
picker.navigationBar.tintColor = [UIColor whiteColor];
2.我遇到的问题比较奇葩,那就是在调用系统相册之后,导航栏颜色变为透明,并且返回键变得很大,我需要解决的就是把取消键变小,但并没有改变按钮字体大小,只是退一步,还原系统原来字体的大小
//通过这个方法来统一设置导航栏的一些状态
UIBarButtonItem * appearance = [UIBarButtonItem appearanceWhenContainedInInstancesOfClasses:@[[UINavigationBar class]]];
// 0和1表示点击按钮的状态
[appearance setTitleTextAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:18]} forState:0];
[appearance setTitleTextAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:18]} forState:1];
3.简单介绍一下appearanceWhenContainedInInstancesOfClasses这个方法
+ (instancetype)appearance;
这个方法是统一全部改,把苹果对这个方法的注释翻译过来就知道怎么用了,我英文不行,大致意思我还是知道的。
翻译:自定义一个类的所有实例的外观,把外观修改的相关信息发送到外观的代理类。例如:修改导航栏的颜色
[[UINavigationBar appearance] setBarTintColor:myColor];
PS:在iOS7tintColor这个属性被移动到UIView,有特殊的继承行为在UIView.h文件中说明。这个继承行为可能和appearance的代理相冲突,因此tintColor这个属性不允许被用在appearance proxy。
+ (instancetype)appearanceWhenContainedIn:(nullable Class <UIAppearanceContainer>)ContainerClass, ...(废弃)
上面的方法适用于iOS5.0-9.0,在9.0之后就被下面这个方法替换掉了:
+ (instancetype)appearanceWhenContainedInInstancesOfClasses:(NSArray<Class <UIAppearanceContainer>> *)containerTypes后面的参数是一个数组,是把需要设置的类放在数组里面。
其实这两个方法上面的注释有这个方法的用法,一看就明白是怎么用。如下:
[[UINavigationBar appearanceWhenContainedInInstancesOfClasses:@[[UISplitViewController class]]] setBarTintColor:myColor];
[[UINavigationBar appearanceWhenContainedInInstancesOfClasses:@[[UITabBarController class], [UISplitViewController class]]] setBarTintColor:myTabbedNavBarColor];
这样就设置了指定类的导航栏的颜色了,很简单的。
iOS开发中,调用系统相册遇到的问题
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 【蝴蝶效应】 蝴蝶效应:上个世纪70年代,美国一个名叫洛伦兹的气象学家在解释空气系统理论时说,亚马逊雨林一只蝴蝶...
- 一般上传图片的步骤: 1:创建UIActionSheet,利用其代理方法判断是调用相机还是相册2:创建相机方法;3...