iOS开发解决:iOS8.1中UIBarButtonItem的setTitleTextAttributes对Disabled颜色设置无效问题
2015-05-15 17:03
483 查看
(1)情景:在iOS8.1中,我们通常会利用如下语句,设置全局的导航条按钮item的主题
(2)问题是,我们在上面明明设置了item各种状态下的属性(normal,highlighted和disabled),但是当我们在某一个控制器中添加了一个item时,并且设置为disabled状态时,却发现不起作用。
(3)解决方案
将上面的设置为disabled的语句放置在viewWillAppear中。
(4)至于为什么会是这样?说实话,我也不是很清楚,之前以为调用顺序的原因(测试顺序正常),后来觉得是viewDidLoad中enabled未赋值(但测试是0,有赋值)。有明白的还请指教。暂且认为是iOS8.1的一个bug吧。在iOS7.1中测试是正常的。
UIBarButtonItem *item=[UIBarButtonItem appearance]; NSMutableDictionary *textAttrs=[NSMutableDictionary dictionary]; textAttrs[NSForegroundColorAttributeName]=[UIColor orangeColor]; [item setTitleTextAttributes:textAttrs forState:UIControlStateNormal]; [item setTitleTextAttributes:textAttrs forState:UIControlStateHighlighted]; NSMutableDictionary *dTextAttrs=[NSMutableDictionary dictionaryWithDictionary:textAttrs]; dTextAttrs[NSForegroundColorAttributeName]=[UIColor grayColor]; [item setTitleTextAttributes:dTextAttrs forState:UIControlStateDisabled];
(2)问题是,我们在上面明明设置了item各种状态下的属性(normal,highlighted和disabled),但是当我们在某一个控制器中添加了一个item时,并且设置为disabled状态时,却发现不起作用。
-(void)setupNavBar{ self.navigationItem.rightBarButtonItem=[[UIBarButtonItem alloc]initWithTitle:@"发送" style:UIBarButtonItemStyleDone target:self action:@selector(send)]; self.navigationItem.rightBarButtonItem.enabled=NO; }
(3)解决方案
将上面的设置为disabled的语句放置在viewWillAppear中。
-(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; //如果把下面这一句写在ViewDidLoad中,disabled的item颜色没有效果 self.navigationItem.rightBarButtonItem.enabled=NO; }
(4)至于为什么会是这样?说实话,我也不是很清楚,之前以为调用顺序的原因(测试顺序正常),后来觉得是viewDidLoad中enabled未赋值(但测试是0,有赋值)。有明白的还请指教。暂且认为是iOS8.1的一个bug吧。在iOS7.1中测试是正常的。
相关文章推荐
- 【iOS开发-103】解决方案:iOS8.1中UIBarButtonItem的setTitleTextAttributes对Disabled颜色设置无效
- 【iOS开发-103】解决方案:iOS8.1中UIBarButtonItem的setTitleTextAttributes对Disabled颜色设置无效
- iOS8中UIBarButtonItem的setTitleTextAttributes对Disabled颜色设置无效
- UITabBar 设置字体的颜色(选中状态/正常状态)setTitleTextAttributes
- iOS 系统导航栏 UINavigationController 标题设置setTitleTextAttributes
- 解决ios 开发百度地图设置中心点偏移无效的问题
- 解决listview中的textview设置了setMovementMethod导致onItemclick无效的问题
- iOS开发中屏幕旋转至一个方向后再手动设置屏幕旋转至该方向无效问题
- TextView setText()无效的问题解决
- 安卓开发——代码设置控件文字字号时的单位问题(setTextSize与getTextSize)
- android开发解决设置铃声无效问题
- Android中EditText 设置 imeOptions 无效问题的解决方法
- Xamarin.Android 开发SetTextColor颜色设置
- Android中xml布局文件中使用include引入布局进行复用(解决使用include布局重叠,颜色设置无效问题)
- Android中给TextView设置颜色无效的问题
- setTextColor方法不能用R.Color.XXX设置颜色的解决方法
- Vue 动态设置网站title 解决ios在微信浏览器中不生效问题
- iOS开发中屏幕旋转至一个方向后再手动设置屏幕旋转至该方向无效问题
- ios开发证书无效的问题如何解决
- 解决串口通讯中部分串口ReadFile使用SetCommTimeouts设置超时无效的问题