UITabBarController 未选择的图标图像色调
Posted
技术标签:
【中文标题】UITabBarController 未选择的图标图像色调【英文标题】:UITabBarController unselected icon image tint 【发布时间】:2013-09-26 18:43:50 【问题描述】:我有一个正在尝试修改的 UITabBarController。现在,未选择的选项卡图标图像默认为灰色。我知道您无法以编程方式更改这些未选择的图标图像的色调。苹果表示,色调由 png 文件本身的实际色调控制。因此,如果您想要白色或绿色图标图像,则必须使用将图像显示为白色或绿色等的 png。之后,您必须使用 UIImageRenderingModeAlwaysOriginal 和 initWithTitle:image:selectedImage:我在我的 FirstViewController.m 和我把它放在-(void)viewDidLoad 中。但是,我遇到了一个解析问题:预期的标识符及其指向 nil 之后的括号。有人看到这段代码有问题吗?
//
// FirstViewController.m
// tabmock5
//
// Created by USER on 9/26/13.
// Copyright (c) 2013 USER. All rights reserved.
//
#import "FirstViewController.h"
@interface FirstViewController ()
@end
@implementation FirstViewController
- (void)viewDidLoad
[[UIImage imageNamed:@"white_stats.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
[self.tabBarItem initWithTitle:[nil]image:[UIImage imageNamed:@"white_stats.png"]selectedImage:[UIImage imageNamed:@"white_stats.png"]];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
【问题讨论】:
【参考方案1】:[[UIImage imageNamed:@"white_stats.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
这不会将图像保存在任何地方。将其更改为:
UIImage *myImage = [[UIImage imageNamed:@"white_stats.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
还有这个:
[self.tabBarItem initWithTitle:[nil]image:[UIImage imageNamed:@"white_stats.png"]selectedImage:[UIImage imageNamed:@"white_stats.png"]];
nil
不是对象(它不在方括号中)。将其更改为:
[self.tabBarItem initWithTitle:nil image:myImage selectedImage:[UIImage imageNamed:@"white_stats.png"]];
或者,从技术上讲,您可以在一行中完成此操作:
[self.tabBarItem initWithTitle:nil image:[[UIImage imageNamed:@"white_stats.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] selectedImage:[UIImage imageNamed:@"white_stats.png"]];
但如果您需要稍后再看它,这很难阅读,所以不要这样做。
【讨论】:
以上是关于UITabBarController 未选择的图标图像色调的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式将 UITabBarController 中 TabBarItem 中的图标居中
使选定的 UITabBarController 项目图标更大
UITabBarController 未显示其内容的所有大小(UIViewController)
在 UITabBarController 内未调用 cellForRowAtIndexPath