IOS 10では、このコードはtabBarシャドウラインを削除するために機能しません。
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
誰かが知っている、それを削除するにはどうすればよいですか?
オン iOS 9.3
この2行で行が削除されますが、iOS 10
はsetShadowImage
コマンドを無視します。
@iOS 13.0のトップラインを削除
let appearance = tabBar.standardAppearance
appearance.shadowImage = nil
appearance.shadowColor = nil
tabBar.standardAppearance = appearance;
iOS 12.0以前のトップラインを削除
tabBar.shadowImage = UIImage()
tabBar.backgroundImage = UIImage()
iOS 10のコードを怒鳴らせてみてください:-
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[[UITabBar appearance] setBackgroundImage:[UIImage imageNamed:@"fondoTabBar"]];
[UITabBar appearance].layer.borderWidth = 0.0f;
[UITabBar appearance].clipsToBounds = true;
return YES;
}
Swift 3.x
UITabBar.appearance().layer.borderWidth = 0.0
UITabBar.appearance().clipsToBounds = true
iOS 13の場合
if (@available(iOS 13.0, *)) {
UITabBarAppearance *appearance = [self.tabBarController.tabBar.standardAppearance copy];
appearance.shadowImage = nil;
appearance.shadowColor = nil;
self.tabBarController.tabBar.standardAppearance = appearance;
}
iOS 12.1でテスト済み
override func viewDidLoad() {
// Remove default border line
tabBar.shadowImage = UIImage()
tabBar.backgroundImage = UIImage()
tabBar.backgroundColor = UIColor.white
}
IOS 10の場合、タブバーのスタイルを黒に変更してトリックを行いました
self.tabBarController.tabBar.shadowImage = UIImage()
self.tabBarController.tabBar.barStyle = .Black
これは私の@ iso13で機能します:
AppDelegate.Swift
UITabBar.appearance().clipsToBounds = true
UITabBar.appearance().shadowImage = nil
または
UITabBar.appearance().clipsToBounds = true
UITabBar.appearance().layer.borderWidth = 0
または
UITabBar.appearance().clipsToBounds = true
UITabBar.appearance().layer.borderColor = UIColor.clear.cgColor
私にはコメントする評判はありませんが、gnoixの答えに追加するために、影が欲しいという少し異なる問題がありましたand背景がはっきりしているので、Swiftにありました
if #available(iOS 13.0, *) {
let appearance = tabBar.standardAppearance.copy()
appearance.configureWithTransparentBackground()
tabBar.standardAppearance = appearance
} else {
tabBar.backgroundColor = UIColor.clear
let image = UIImage(ciImage: CIImage(color: CIColor.clear)).af_imageAspectScaled(toFit: tabBar.bounds.size)
tabBar.backgroundImage = image
tabBar.shadowImage = image
}
iOS 13.3以降の実用的なソリューション
// remove top line
if #available(iOS 13.0, *) {
// ios 13.0 and above
let appearance = tabBar.standardAppearance
appearance.shadowImage = nil
appearance.shadowColor = nil
appearance.backgroundEffect = nil
// need to set background because it is black in standardAppearance
appearance.backgroundColor = .someColor
tabBar.standardAppearance = appearance
} else {
// below ios 13.0
let image = UIImage()
tabBar.shadowImage = image
tabBar.backgroundImage = image
// background
tabBar.backgroundColor = .someColor
}
FirstViewController.Swiftで次のように行うことができます。
Swift 4.2
self.tabBarController!.tabBar.layer.borderWidth = 0.50
self.tabBarController!.tabBar.layer.borderColor = UIColor.clear.cgColor
self.tabBarController?.tabBar.clipsToBounds = true
必要に応じて境界線の色を変更してください。
IOS 10でも同じ問題がありました。UITabBarの高さを変更するだけでこの問題を修正しました(デフォルトは49)。確認してください こちら 高さの変更方法。
タブバーの影画像(プロパティ)です。以下の解決策を試してみてください。
これを試してください、** 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:を使用してカスタムバックグラウンドイメージも設定する必要があります(デフォルトのバックグラウンドイメージが使用されている場合は、デフォルトのシャドウイメージが使用されます)。
次の2つのメソッドを同時に実装する必要があります。
[[UITabBar appearance] setShadowImage:[UIImage new]];
[[UITabBar appearance] setBackgroundImage:[UIImage new]];