2016-11-21 8 views
0
 if !UIAccessibilityIsReduceTransparencyEnabled() { 
      self.blurOutletTop.backgroundColor = UIColor.clear 

      let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.dark) 

      let blurEffectView = UIVisualEffectView(effect: blurEffect) 
      blurEffectView.frame = self.blurOutletTop.bounds 
      blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight] 

      self.view.addSubview(blurEffectView) 

      //self.logoOutlet.addSubview(blurEffectView) 

     } 
     else { 
      self.view.backgroundColor = UIColor.black 
     } 
    } 

私は画面上部にUIViewサイズのナビゲーションバーを持っています。上記のコードは、ぼかし効果を追加します。私がしようとしているのは、自分のナビゲーションボタンをビューの上に追加して、ぼかしていないようにすることですが、これをストーリーボードだけで実行するとボタンもぼやけてしまいます。ぼやけたビューにサブビューを追加する

私はblurEffectViewにサブビューとしてボタンのアウトレットを追加すると、上のボタンを配置することを読んで、私は

self.logoOutlet.addSubview(blurEffectView) 

をコメント解除したときにblurOutletTopの位置が再配置され、ボタンの背景がぼやけているが、ラベルテキストは表示されず、ボタン自体が再配置されます。私は制約を加えようとしましたが、どちらも助けにはなりませんでした。

私のblurTopOutletの私のボタン/画像のオーバータップを取得する最も簡単な方法は何ですか?

答えて

1

私はUIVisualEffectViewをコードでサブクラス化し、すべての種類のコントロールをサブビューとして追加しました。非常に良い効果。ビューの階層の期待のためにIB経由で100%実行できるかどうかは不明です。

  • (1)IBで「メイン」ビューを作成し、制約を追加します。ここでの代替案は、UIVisualEffectViewをサブクラス化したものです。
  • (2)コードで「メイン」ビューのサブビューを作成し、「メイン」ビューに追加し、コードに制約を追加します。
  • (3)一部のサブビュー(UIButtons)に関連付けられたアクションが必要なので、addTarget(target:for :)をコーディングしてください。

追加編集:ほとんどの場合、これをIBで実行できます。すべてを設定し、UIButtonsはあなたのぼかしたビューのサブビューであるので、bringSubview(ToFront :)を使ってみてください。それがうまくいくなら、はるかに簡単です! (私は古い学校とより多くのものをコーディングするようだ。)

0

代わりlogoOutletblurEffectViewを追加する:

logoOutlet.addSubview(blurEffectView) 

あなたはblurEffectViewlogoOutletを追加する必要があります

blurEffectView.contentView.addSubview(logoOutlet) 
関連する問題