カスタムUITabBarを実装しましたが、その上にまだこのグラデーション/影があります。追加した
[self.tabBar setBackgroundImage:[UIImage imageNamed:@"navBarBottom.png"]];
これは背景を変更するだけですが、影のグラデーションは維持します。
私は何を間違えていますか?それを取り除くために指定するものはありますか?
私が持っているもの:
私が欲しいもの:
ありがとうございました。
UITabBarに1x1ピクセルの透明な影の画像を設定してみてください。
[[UITabBar appearance] setShadowImage:[UIImage imageNamed:@"transparentShadow.png"]];
この質問 の答えも同様です...もしあなたがどんな種類の1x1の透明な画像を台無しにしたくないなら、この作品も:
[[UITabBar appearance] setBackgroundImage:[[UIImage alloc] init]];
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
Swiftの場合:
UITabBar.appearance().shadowImage = UIImage()
UITabBar.appearance().backgroundImage = UIImage()
スイフト
カスタムタブバーでこれを試してください。水平の影の線を非表示にします。
self.tabBar.setValue(true, forKey: "_hidesShadow")
目的C
[self.tabBar setValue:@(YES) forKeyPath:@"_hidesShadow"];
Swift 4
UITabBar.appearance().layer.borderWidth = 0.0
UITabBar.appearance().clipsToBounds = true
画像を設定するだけで、borderWidthを0に設定する必要があるシャドウラインは削除されません。ここにコードがあります
[[UITabBar外観] setShadowImage:[UIImage new]];
[UITabBar外観] .layer.borderWidth = 0.0f;
[UITabBar外観] .clipsToBounds = true;
[[UITabBar appearance] setShadowImage:]
を呼び出すと、アプリ内のすべてのUITabBar
インスタンスがカスタマイズされます。
UITTabBar
を1つだけカスタマイズしたい場合、これを行うことができます:
[self.tabBarController.navigationController.navigationBar setShadowImage:[UIImage new]];
実装が簡単な別の答えを次に示します。
[self.tabBar setValue:@(YES) forKeyPath:@"_hidesShadow"];
私のために働いた。
私は次の方法で同じ外観を達成しました。
1。背景バーの色合いをメインの親ビューの背景色と同じに設定します。
2。
this.TabBar.BarStyle = UIBarStyle.BlackOpaque;
Xamarinで使用しました。Swift構文を確認してください。
これをAppDelegatedidFinishLaunchingWithOptionsの下に配置します:
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
[[UITabBar appearance] setBackgroundImage:[[UIImage alloc] init]];
これを試してください、** Objective-C **
//Remove shadow image by assigning nil value.
[[UITabBar appearance] setShadowImage: nil];
// or
// Assing UIImage instance without image reference
[[UITabBar appearance] setShadowImage: [[UIImage alloc] init]];
** Swift **
//Remove shadow image by assigning nil value.
UITabBar.appearance().shadowImage = nil
// or
// Assing UIImage instance without image reference
UITabBar.appearance().shadowImage = UIImage()
こちらはApple shadowImage のガイドラインです。
@available(iOS 6.0, *)
open var shadowImage: UIImage?
デフォルトはnilです。非nilの場合、デフォルトの影画像の代わりに表示するカスタム影画像。カスタムシャドウを表示するには、カスタムバックグラウンドイメージも-setBackgroundImage:で設定する必要があります(デフォルトのバックグラウンドイメージを使用する場合は、デフォルトのシャドウイメージが使用されます)。
ViewDidloadでこれを試してください。
override func viewDidLoad() {
super.viewDidLoad()
self.tabBar.setValue(true, forKey: "_hidesShadow")
}
それは私のために働く
ほとんどのViewControllerがviewDidLoadで継承するView ControllerまたはView ControllerまたはBasicViewControllerに、次の2行を追加します。
[[UITabBar appearance] setBackgroundImage:[UIImage imageNamed:@"tab_bar_background"]];
[[UITabBar appearance] setShadowImage:[UIImage imageNamed:@"transparent_shadow"]];
[email protected]が1x1または2x2の透明な画像であり、tab_bar_background @ 2x.pngが640x100の画像であることを確認してください。下のバーの高さは50pxです。
IOS 9.3で動作します