4

iOS 7 では、標準UIActivityViewControllerは半透明の白っぽい背景になります。それどころか、私のアプリには暗いテーマがあります。暗いアプリの背景に白UIAcitivityViewControllerがポップアップすると、ひどく見えます。

の背景色を変更する方法はあり UIAcitivityViewControllerますか?

試してみ ましたが、これにより、標準の白い背景のようなアイコンactivityVC.view.backgroundColor = [UIColor blackColor]が占める領域だけでなく、画面全体が黒くなります。UIAcitivity

UIActivityViewController のスクリーンショット

4

5 に答える 5

0

私のソリューションは少し不安定に見えますが、iOS7 と iOS8 の両方で動作します。また、何かが突然変更された場合でも、アプリがクラッシュすることはありません。

UIActivityViewController *aVC = [[UIActivityViewController alloc] initWithActivityItems:@[[NSURL urlWithString:@"http://example.com"] applicationActivities:nil];
id targetView = [[[[[[[[[[[aVC.view.subviews lastObject] subviews] firstObject] subviews] firstObject] subviews] firstObject] subviews] firstObject] subviews] firstObject];
if ([targetView respondsToSelector:@selector(setBackgroundColor:)])
{
    UIColor *targetColor = ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) ? [[UIColor redColor] colorWithAlphaComponent:0.3] : [UIColor redColor];
    [targetView setBackgroundColor:targetColor];
}

シミュレーターでの表示例:

ここに画像の説明を入力

于 2014-09-21T22:28:28.177 に答える
-2
socialActivityPopover = [[UIPopoverController alloc] initWithContentViewController:activityView];
[socialActivityPopover setBackgroundColor:[UIColor redColor]];
于 2013-12-19T10:24:22.700 に答える