1. ホーム
  2. ios

[解決済み] iOS7で透明なUIToolbarやUINavigationBarを描画する方法

2023-03-27 10:30:08

質問

完全に透明な UIToolbar または UINavigationBar . iOS 5 の前と後に提案されたさまざまな呪文を試しましたが、どれももう機能しないようです。

iOS 7 ではどのようにしてこれを達成することができるでしょうか。

どのように解決するのですか?

Swift 3 (iOS 10)

透明 UIToolbar

self.toolbar.setBackgroundImage(UIImage(),
                                forToolbarPosition: .any,
                                barMetrics: .default)
self.toolbar.setShadowImage(UIImage(), forToolbarPosition: .any)

透明 UINavigationBar

self.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationBar.shadowImage = UIImage()
self.navigationBar.isTranslucent = true


スウィフト 3

透明 UIToolbar

self.toolbar.setBackgroundImage(UIImage(),
                                forToolbarPosition: UIBarPosition.Any,
                                barMetrics: UIBarMetrics.Default)
self.toolbar.setShadowImage(UIImage(),
                            forToolbarPosition: UIBarPosition.Any)

透明 UINavigationBar

self.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
self.navigationBar.shadowImage = UIImage()
self.navigationBar.translucent = true


Objective-C

透明 UIToolbar

[self.toolbar setBackgroundImage:[UIImage new]
              forToolbarPosition:UIBarPositionAny
                      barMetrics:UIBarMetricsDefault];
[self.toolbar setShadowImage:[UIImage new]
          forToolbarPosition:UIBarPositionAny];


透明 UINavigationBar

[self.navigationBar setBackgroundImage:[UIImage new]
                         forBarMetrics:UIBarMetricsDefault];
self.navigationBar.shadowImage = [UIImage new];
self.navigationBar.translucent = YES;


ディスカッション

設定 translucent から YES で説明されている動作により、ナビゲーションバー上でトリックを行います。 UINavigationBar のドキュメントで説明されている動作のためです。ここでは、関連する断片を報告します。

もし、このプロパティを YES に設定すると、ナビゲーション バーは画像に 1.0 未満のシステム不透明度を適用します。


最終結果