5

に淡色の背景を追加します。残念ながら、カスタムpopoverBackgroundViewClassを指定すると、ネイティブの淡色の背景が消えます。カスタムUIPopoverBackgroundViewを使用しているときに淡色の背景を残す方法はありますか?ネイティブの動作をシミュレートするために使用できる他のソリューションは、どのように私は(これ<a href="http://blog.teamtreehouse.com/customizing-the-design-of-uipopovercontroller">tutorial</a>を使用して)UIPopoverBackgroundViewをサブクラス化し、UIPopoverControllerを使用して、それを提示することによって、カスタムポップオーバーを作っていますカスタムUIPopoverBackgroundView

+0

私は私の質問を更新し、ここ – malex

+0

をあなたのコードを記述してください。私は使用しているチュートリアルへのリンクを追加しました。 – sash

+0

それを取得しないでください、なぜ質問を投票するには?? UIPopoverBackgroundViewをサブクラス化する方法や、なぜそれが動作しないのかについてではありません。問題は次のとおりです。UIPopoverBackgroundViewをサブクラス化すると、ボックスから淡色の背景を設定することは可能ですか? – sash

答えて

4

これが否決てしまった理由は、カスタムUIPopoverBackgroundViewを実装する際に、淡い背景が設定されませんので、それは良い質問ですわかりません。この問題を研究するにあたり、私は最良の方法は自分で設定することだと決めました!

ちょうどポップオーバービューを作成する前に、私はポップオーバーの前にビューに追加されます「マスクビュー」を作成します。私に適しています

[UIView transitionWithView:self.view 
        duration:0.3 
        options:UIViewAnimationOptionTransitionCrossDissolve 
       animations:^ { 
        [self.customPopoverMaskView removeFromSuperview]; 
       } 
       completion:nil]; 
:このコードにも効果での素敵なフェードインが含まれています

self.customPopoverMaskView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)]; 
    self.customPopoverMaskView.backgroundColor = [UIColor blackColor]; 
    self.customPopoverMaskView.alpha = 0.3f; 

    [UIView transitionWithView:self.view 
         duration:0.3 
         options:UIViewAnimationOptionTransitionCrossDissolve 
        animations:^ { 
         [self.view addSubview:self.customPopoverMaskView]; 
        } 
        completion:nil]; 

をそしてポップオーバービューの消失を処理する方法(複数可)には、このプラグ、ビューを削除するには。ハッピーコーディング!

アーロン

5

必要なのは、initWithFrameに次のコードを追加します:UIPopoverBackgroundViewの実装方法。

UIView *dimView = [[UIView alloc] initWithFrame:CGRectMake(0 - self.frame.origin.x, 
                  0 - self.frame.origin.y, 
                  [UIScreen mainScreen].bounds.size.width, 
                  [UIScreen mainScreen].bounds.size.height)]; 
dimView.backgroundColor = [UIColor blackColor]; 
dimView.alpha = 0.15; 
dimView.userInteractionEnabled = NO; 
[self addSubview:dimView]; 

デフォルトのApple実装と同じように動作します。

関連する問題

 関連する問題