0

自定义时,UITabBar我有两种方法可以做到这一点,我很好奇什么是最好的方法,两种方法都有哪些优点和缺点?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        UITabBarController *tbc = (UITabBarController *)self.window.rootViewController;

        UITabBar *tb = tbc.tabBar;

        // 1. Customizing UITabBar using appearance proxy:
        [[UITabBar appearance] setBackgroundImage:[UIImage imageNamed:@"tabbar.png"]];
        [[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@"tabbar_selected.png"]];


        // 2. Doing the same by setting the properties directly:
        // tb.backgroundImage = [UIImage imageNamed:@"tabbar.png"];
        // tb.selectionIndicatorImage = [UIImage imageNamed:@"tabbar_selected.png"];

        return YES;
    }
4

1 回答 1

1

外观代理的优点是您可以随时更改任何控制器的外观,甚至可以利用它节省一些重绘调用。

您对代理对象所做的任何更改都会在视图布局时应用到存在或随后创建的类的所有实例。但是,您仍然可以稍后使用给定实例的方法和属性覆盖代理默认值。

要使用属性访问,您需要该控制器的对象,然后您可以访问它。您也可以查看此文档

于 2013-01-22T11:02:51.787 回答