web-dev-qa-db-ja.com

TabBarから一番上の行を削除する

IOS 10では、このコードはtabBarシャドウラインを削除するために機能しません。

[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];

誰かが知っている、それを削除するにはどうすればよいですか?

オン iOS 9.3この2行で行が削除されますが、iOS 10setShadowImageコマンドを無視します。

17
jcamacho

@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()
32
sahiljain

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
37
Mitul Marsoniya

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;
}
8
gnoix

iOS 12.1でテスト済み

override func viewDidLoad() {
    // Remove default border line
    tabBar.shadowImage = UIImage()
    tabBar.backgroundImage = UIImage()
    tabBar.backgroundColor = UIColor.white
}
3
denis_lor

IOS 10の場合、タブバーのスタイルを黒に変更してトリックを行いました

self.tabBarController.tabBar.shadowImage = UIImage()
self.tabBarController.tabBar.barStyle = .Black
2
Hamdan Javed

これは私の@ 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
2
kironet

私にはコメントする評判はありませんが、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
}
1
Andrew

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
}
1
mkz

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

必要に応じて境界線の色を変更してください。

0
Knight Fighter

IOS 10でも同じ問題がありました。UITabBarの高さを変更するだけでこの問題を修正しました(デフォルトは49)。確認してください こちら 高さの変更方法。

0

タブバーの影画像(プロパティ)です。以下の解決策を試してみてください。

これを試してください、** 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:を使用してカスタムバックグラウンドイメージも設定する必要があります(デフォルトのバックグラウンドイメージが使用されている場合は、デフォルトのシャドウイメージが使用されます)。

0
Krunal

次の2つのメソッドを同時に実装する必要があります。

[[UITabBar appearance] setShadowImage:[UIImage new]];
[[UITabBar appearance] setBackgroundImage:[UIImage new]];
0
BabyFish