2016-07-08 9 views
7

現在のところ、私のビュー階層は、UIViewController(NOT UITableViewController)、UITableViewがView Controllerにネストされ、UIVisualEffectView(Extra Lightに設定されています)がUITableViewの前に配置されています。 UINavigationBarの下部達成したい効果は、App Storeの分割ビューと似ています。下図のようUINavigationBarとUIVisualEffectViewの間のぼかしエッジの除去

はしかし、私は(赤い円で強調表示)、ビューは矛盾に見えるナビゲーションバーとUIVisualEffectViewとの境界で発生した奇妙なぼかしエッジに気づい:

enter image description here

最適には、UIVisualEffectViewがUINavigationBarのぼかしと完全にブレンドされていることをお勧めします。

ありがとうございました。

+0

普通の色の背景を持っていないと、スクリーンショットのように見えますが、背景に何もな​​いようです。 – Wain

+0

ナビゲーションバーとエフェクトビューにバックグラウンドビューを追加すると、最初にぼかし効果ビューを持つ点が無効になります。 iOS 7以上では、実際には半透明のナビゲーションバーからテーブルビューが表示されます。 –

+2

私は現在開発中のアプリで同じ問題を解決しなければなりませんでした。私にとって、それはtabBarであり、ナビゲーションバーの下部に固定された上部およびテーブルセクションのヘッダーに添付されたblurViewでした。解決策は、UITabBarを透明にすること(半透明ではなく、全くバックグラウンドなし)で、blurBarをtabBarが占めるスペースを埋めるように下方に延長することでした。バーを透明にする方法のコードサンプルが必要な場合はお知らせください。 :) - UIBarには、エッジでUIVisualEffectViewsとブレンドするフラグを設定することはできません。しかし、私は偽造されるのが大好きです。 – Cabus

答えて

1

画像を見ると、UINavigationBarに起因するものではなく、UISegmentedControlが追加されているようです。 ので、この問題を解決するための合理的な方法は、ヘッダーの色を変更することです、私はあなたの構造を知らないが、それはtableHeaderViewself.tableView.tableHeaderView)のようになります。

コード例

override func tableView(tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) { 
     var headerView: UITableViewHeaderFooterView = view as! UITableViewHeaderFooterView 
     header.contentView.backgroundColor = UIColor.clearColor() 
     return header 
} 
+0

私は次のようなビュー階層を使用しました: 'UINavigationController> UIViewController(テーブルビューコントローラではない)> UITableView' テーブルビューの上に(私はベースとして標準の' UIViewController'を使用していました) UIVisualEffectView'をExtra Lightに設定し、そこに 'UISegmentedControl'をネストします。 –

+0

私はそれをしようとしました、私はあなたの問題を再現することはできません、GitHub O Gistまたはいくつかの例がありますか? –

1

に試してみてくださいセグメントのバックグラウンドとしてUIVisualEffectViewの代わりにUIToolBarを使用します。ナビゲーションバーには、ぼかし効果ではなく、半透明の背景があります。 UIToolBarは、ナビゲーションバーと同じ半透明の背景を持つため、エッジでシームレスに見えます。

+0

私はこの画面を最初に作成していたときにUIToolBarを使用しようとしましたが、残念ながら 'UIToolBar'に合うように' UISegmentedControl'の長さを取得できませんでした(セグメント化されたコントロールを約16pts左と右のエッジで左)。したがって、私はUIVisualEffectViewで解決しました。 –

+0

'UIVisualEffectView'は、半透明のナビゲーションバーと同じ視覚的な外観を持たないため、あなたのニーズを満たすことはありません。おそらくツールバーの 'UISegmentedControl'のサイズ変更に力を入れてください。 1つの方法は、両側に柔軟なスペーサーを使用してコントロールを中央に配置し、コード内に正しいサイズを設定することです。 – Fujia

関連する問題