通过外观代理自定义UITabbar与直接设置属性(差异,优势......)

时间:2013-01-22 10:52:40

标签: iphone ios uitabbar uiappearance

在自定义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;
    }

1 个答案:

答案 0 :(得分:1)

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

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

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