我正在开发一款应用,想要自定义UItabbar图标图片。
我有一张名为about.png这张图片的图片我想设置为我应用的UItabbar的左图标图片。 我怎么能这样做?
答案 0 :(得分:3)
k你使用这个代码并使用你自己的图像,而不是内置的图像...
- (id)init {
UIImage* anImage = [UIImage imageNamed:@"newspaper.png"];
UITabBarItem* theItem = [[UITabBarItem alloc] initWithTitle:@"News" image:anImage tag:0];
self.tabBarItem = theItem;
[theItem release];
return self; }
newspaper.png是标签栏中我自己的图片......
k现在这对你的问题已经足够了......
答案 1 :(得分:0)
如果要更改UITabbarItem的图像,可以使用其实例方法
- (id)initWithTitle:(NSString *)title image:(UIImage *)image tag:(NSInteger)tag
答案 2 :(得分:0)
在使用tab的viewController中实现init()。
- (id)init {
if (self = [super initWithNibName:@"Search" bundle:nil]) {
UIImage* tabImage = [UIImage imageNamed:@"search.png"];
UITabBarItem* theItem = [[UITabBarItem alloc] initWithTitle:@"Search" image:tabImage tag:0];
self.tabBarItem = theItem;
[theItem release];
}
return self;
}
答案 3 :(得分:0)
通过编程方式或通过视觉方式(使用IB)
总有两种方法编程: -
UITabBarItem* theItem = [[UITabBarItem alloc] initWithTitle:@"News" image:anImage tag:0];
使用此或如果您在视觉上: - 单击IB中的特定选项卡图标,然后选择自定义和图标,并提供特定图标文件的名称。
这可以解决你的问题......
答案 4 :(得分:0)
你可以改变它。 在tabbar控制器委托方法
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
if([tabBarController selectedIndex] == 0)
{
[viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"selected.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"unselect.png"]];
}
}
通过这个你可以改变你的tabbaritem图像。
或者您可以直接在视图控制器init(或ViewWillAppear)方法中使用,例如
[viewController.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"selected.png"]withFinishedUnselectedImage:[UIImage imageNamed:@"unselect.png"]];
答案 5 :(得分:0)
首先,使该代码成为类:
extension UITabBarController {
func addIcon(icon : UIImage, deselectIcon : UIImage, buttonIndex : Int, currentPage : Int){
var index = 0
for view in view.subviews {
if view.subviews.count > 3 {
for _view in view.subviews {
if index == buttonIndex {
for v in _view.subviews {
if v is UIImageView {
v.removeFromSuperview()
}
}
let img = UIImageView(frame: CGRect(x: _view.frame.width / 2 - 15, y: 4, width: 30, height: 30))
if buttonIndex == currentPage {
img.image = icon
}else{
img.image = deselectIcon
}
img.contentMode = .scaleAspectFit
_view.addSubview(img)
}
index += 1
}
}
}
}
}
在didload
中,您调用function:
override func viewDidLoad() {
super.viewDidLoad()
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1 ) {
self.tabBarController?.addIcon(icon: #imageLiteral(resourceName: "Shop"), deselectIcon: #imageLiteral(resourceName: "Shop"), buttonIndex: 1, currentPage: 1)
}
}
override func viewWillAppear(_ animated: Bool) {
tabBarController?.addIcon(icon: #imageLiteral(resourceName: "Shop"), deselectIcon: #imageLiteral(resourceName: "Shop"), buttonIndex: 1, currentPage: 1)
}