SKStoreProductViewController标题颜色

时间:2014-03-05 21:35:21

标签: ios7 storekit uiappearance

如何更改SKStoreProductViewController中的标题颜色和/或条纹色彩?

我使用外观API将导航栏设置为深色,将文本设置为白色。它改变了我的SKStoreProductViewController中的标题颜色而不是条纹色调。

2 个答案:

答案 0 :(得分:0)

我认为你不能。至少不在iOS 7上。在iOS 6上,您可以使用UIAppearance协议,SKSPVC将选择您在UINavigationBar上设置的外观。

正如this thread所述,SKSPVC是一个remote view controller因此无法通过编程方式进行,这意味着您无法直接(或间接地)设置它的外观。 )。

答案 1 :(得分:0)

执行以下操作以避免 SKStoreProductViewController 接管值为WHITE的tintColor:

 #define kCOLOR_NON_WHITE_COLOR [UIColor darkGrayColor]

 // CHANGE ALL TINTING BEFORE WE CREATE An INSTANCE OF THIS BROKEN PIECE
[UIWindow appearance].tintColor = kCOLOR_NON_WHITE_COLOR;
[UIView appearance].tintColor = kCOLOR_NON_WHITE_COLOR;
[UINavigationBar appearance].tintColor = kCOLOR_NON_WHITE_COLOR;
[UIBarButtonItem appearance].tintColor = kCOLOR_NON_WHITE_COLOR;

// NOW CREATE THE THING
SKStoreProductViewController *controller = [[[SKStoreProductViewController alloc] init] autorelease];

这将在定义的颜色AFAIK中绘制此控制器中的所有UIBarButtonItems和UISegmentedControls,从而使控制器更像您的应用程序设计。

重要提示不要忘记(!!!)在您关闭此控制器后更改所有着色,否则您应用中新创建的视图可能会接管强制着色。

更新:您可能已经发现以下操作外观工作:

[UINavigationBar appearanceWhenContainedIn:[SKStoreProductViewController class], nil]

此修复程序适用于iOS 7&在iOS 6上你有8个不同的问题。 =)