2

ナビゲーションバーにカスタムの背景を追加しようとすると、テーブルビューの上にドロップシャドウが表示されません。サブビューでは、すべてが正常です。

これが私が使用する私のコードです。

// Create resizable images
UIImage *gradientImage44 = [[UIImage imageNamed:@"navbar"]
                            resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
    
// Set the background image for *all* UINavigationBars
[[UINavigationBar appearance] setBackgroundImage:gradientImage44
                                   forBarMetrics:UIBarMetricsDefault];
    // Customize NavBar Shadow
[[UINavigationBar appearance] setShadowImage:nil];

存在しないドロップシャドウ

ナビゲーションバー

既存のドロップシャドウ

サブビュー

更新:この回答が見つかりましたが、機能しません。私はまったく同じ方法でそれを行いました:-(。

4

3 に答える 3

5

ナビゲーションコントローラーを再実装することで修正しました。ビュー階層は次のようになりました。

UIView 
+- Navigation View
+- Table View

UIView をテーブル ビューに変更し、これを UINavigation コントローラーに追加しました。これにより、欠落している影の問題が修正されました。

于 2013-03-10T12:08:55.993 に答える
1

交換

[[UINavigationBar appearance] setShadowImage:nil];

[[UINavigationBar appearance] setShadowImage:[UIImage imageNamed:@"SomeShadowImage"]];

また、iOS 6.0 以降用です。

于 2013-03-08T11:27:45.127 に答える
1

@madcatの答えに従いました。私の場合、UITableView または UITableViewController (コンテナー ビューに埋め込まれている) は、階層内のナビゲーション バー (ビューにドラッグ) の上にある必要がありました。UITableView/Container の後/上に影を付けてナビゲーション バーが描画されたように

于 2013-03-26T11:01:43.233 に答える