objective-c - 带有图像的 ios 标签栏自定义

标签 objective-c ios

我在 ios 应用程序中工作,我需要自定义 tabbar 使其类似于 this

首先我在导航 Controller 中创建了 5 个 viewcontrollers 然后将它们放入 tabbbarcontroller

我用谷歌搜索了这个问题并找到了解决方案

[self.tabBarItem setFinishedSelectedImage:<#(UIImage *)#> withFinishedUnselectedImage:<#(UIImage *)#>]

但它适用于 iOS 5,我需要适用于 iOS 4 和 iOS 5 的解决方案。

最佳答案

对于 ios4 中的自定义标签栏不可用的代码,您需要为我们制作自定义标签栏,您可以引用此 Que。

How to Customize the tabbarcontroller

或者你也可以像这样制作完整的标签栏图像来做简单的逻辑enter image description here

这里我在 appdel 上创建了一个 ImageView did finish 方法并在应用程序中这样做。

self.imgV.frame=CGRectMake(0, 431, 320, 49);
[self.tabbarcontroller.view addSubview:self.imgV];

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController{
    NSUInteger index=[[tabBarController viewControllers] indexOfObject:viewController];
    NSString *deviceType = [UIDevice currentDevice].model;
    NSLog(@"Device%@",deviceType);

    if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad){
      //  self.imgV.frame=CGRectMake(0, 975, 768, 49);
        //[self.tabbarcontroller.view addSubview:self.imgV];

        switch (index) {
            case 0:
                self.imgV.image=[UIImage imageNamed:@"reservation_tab~iPad.png"];
                break;
            case 1:
                self.imgV.image=[UIImage imageNamed:@"place_order_tab~iPad.png"];
                break;
            case 2:
                self.imgV.image=[UIImage imageNamed:@"location_tab~iPad.png"];
                break;
            case 3:
                self.imgV.image=[UIImage imageNamed:@"favorite_tab~iPad.png"];
                break;
            case 4:

                self.imgV.image=[UIImage imageNamed:@"signature_dishes_tab~iPad.png"];

                break;
            case 5:
                self.imgV.image=[UIImage imageNamed:@"history_tab~iPad.png"];
                break;
            case 6:

                self.imgV.image=[UIImage imageNamed:@"contact_us_tab~iPad.png"];

                break;
            default:
                break;
        }

    }
    else{



    switch (index) {
        case 0:
            self.imgV.image=[UIImage imageNamed:@"reservation_tab.png"];
            break;
        case 1:
            self.imgV.image=[UIImage imageNamed:@"place_order_tab.png"];
            break;
        case 2:
            self.imgV.image=[UIImage imageNamed:@"location_tab.png"];
            break;
        case 3:
            self.imgV.image=[UIImage imageNamed:@"favorite_tab.png"];
            break;
        case 4:

                       self.imgV.image=[UIImage imageNamed:@"gallery_tab.png"];

            break;
        default:
            break;
    }
    }
    return YES;
}

关于objective-c - 带有图像的 ios 标签栏自定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13247687/

相关文章:

ios - 使用 identifierForVendor 会拒绝我的应用程序吗?

javascript - iOS 和 Android 中深度链接的版本支持

iOS - 托管 JSON 文件以使用 URL 解析它

ios - Testflight - 通知内部测试人员不起作用

iphone - 我怎样才能避免 AlAssetLibrary 中的位置服务?我可以在不使用定位服务的情况下使用 AlAssetLibrary 检索文件吗?

ios - 如何获取IOS中按钮的图片名称?

ios - 如何在 ios 中异步读取 Documents 目录中的文件

ios - 在 Xcode 中通过 Objective-C 代码测试 Swift 代码

ios - iOS webview 中的文本框不接受输入

ios - 找不到 Xcode 模拟器符号 : _SimCarPlayPropertyKeyHasBackButton