【问题标题】:Custom UITabBarController using subclass使用子类自定义 UITabBarController
【发布时间】:2013-10-30 09:30:15
【问题描述】:

我想通过将 UITabbarController 的子类添加到我的项目来创建自定义 UITabbarController。

自定义标签栏包含选中和未选中状态的自定义图标以及我要添加的标签背景。

我将代表添加到我的 .h 文件中,如下所示:

#import <UIKit/UIKit.h>

@interface CustomTabViewController : UITabBarController <UITabBarDelegate,UITabBarControllerDelegate>
@property (strong, nonatomic) UIWindow *window;

@end

在我的 viewDidLoad 方法的实现文件中,我声明了我想要使用的所有图像。

- (void)viewDidLoad
{
    [super viewDidLoad];
    UITabBarController *tabController = [[UITabBarController alloc] init];

    UIImage *tabBackground = [[UIImage imageNamed:@"TabBar@2x.png"]
                              resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 320, 60)];
    [[UITabBar appearance] setBackgroundImage:tabBackground];

    self.window.rootViewController = tabController;

    UIImage *selectedImage = [UIImage imageNamed:@"meinGuthabenLogoSelected@2x.png"];
    UIImage *unSelectedImage = [UIImage imageNamed:@"meinGuthabenLogoUnselected@2x.png"];
    UITabBar *tabBar = (UITabBar *)tabController.tabBar;
    UITabBarItem *item1 = [tabBar.items objectAtIndex:0];
    [item1 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unSelectedImage];

    selectedImage = [UIImage imageNamed:@"aufladenSelected@2x.png"];
    unSelectedImage = [UIImage imageNamed:@"aufladenUnselected@2x.png"];
    UITabBarItem *item2 = [tabBar.items objectAtIndex:1];
    [item2 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unSelectedImage];

    selectedImage = [UIImage imageNamed:@"bezahlOptionenSelected@2x.png"];
    unSelectedImage = [UIImage imageNamed:@"bezahlOptionenUnselected@2x.png"];
    UITabBarItem *item3 = [tabBar.items objectAtIndex:2];
    [item3 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unSelectedImage];

    selectedImage = [UIImage imageNamed:@"meinKontoSelected@2x.png"];
    unSelectedImage = [UIImage imageNamed:@"meinKontoUnselected@2x.png"];
    UITabBarItem *item4 = [tabBar.items objectAtIndex:3];
    [item4 setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unSelectedImage];

}

但是当我运行应用程序时,默认标签栏控制器没有任何变化。我还将它的类设置为我创建的自定义类。

我想问一下我是否在这里使用了正确的方法,或者我需要实施其他方法吗?

提前谢谢你!

花岗岩

【问题讨论】:

  • 你创建了CustomTabViewController,你在哪里使用了这个CustomTabViewController?在 viewDidLoad 方法中,您创建新的 tabBarController 也不使用 CustomTabViewController。
  • @karthika 我将情节提要中的标签栏控制器的类设置为 CustomTabViewController。我是否也必须在课堂内的某个地方使用它?我不知道该怎么做?

标签: xcode uitabbarcontroller subclass


【解决方案1】:

您还必须像这样设置 tabBar 的框架:

CGRect smallFrame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width-300, frame.size.height-100);

tabController = [[UITabBarController alloc] init];

tabController.view.frame = smallFrame;

【讨论】:

    猜你喜欢
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 2013-02-20
    • 2012-05-31
    • 2013-10-14
    相关资源
    最近更新 更多