在设计UIAppearance时,你如何针对特定的UIViews?

JoJ*_*oJo 3 iphone cocoa-touch ios ios5

我正在使用UIAppearance在iOS 5中设置全局样式.这是一个例子:

[[UIbarButtonItem appearance]
    setTtitletextAttributes:someStyle
    forState:UIControlStateNormal
];
Run Code Online (Sandbox Code Playgroud)

在大多数情况下它看起来很好:

在此输入图像描述

但有些情况下,全球风格看起来很丑陋,就像在电影播放器​​中一样.

在此输入图像描述

对于电影播放器​​,我更喜欢使用默认的蓝色按钮.那么我如何只针对后退按钮的外观而不是完成按钮的外观呢?我有针对普通表格单元格和分组表格单元格的类似问题.

rob*_*off 6

您需要使用自定义子类UINavigationBar.我们称之为MyNavigationBar.然后你可以这样做:

[[UIBarButtonItem appearanceWhenContainedIn:[MyNavigationBar class], nil]
    setTintColor:[UIColor redColor]];
Run Code Online (Sandbox Code Playgroud)

它只会影响导航栏中的按钮,而不会影响MPMoviePlayerController导航栏.

当然,问题是UINavigationController总是使用基本UINavigationBar...如果你在代码中创建它.但是,如果您在笔尖中创建它,则可以单击其导航栏(在笔尖的文档大纲中)并在"标识"检查器中更改该栏的类.