29

iOS 7 では、Apple はUIToolbar上部に 1 ピクセルのヘアラインを表示するように変更しました。これは場合によっては視覚的に気を散らすものであり、それを削除するための公開 API はないようです。

shadowImage の設定は機能しません。

ヘアラインを比較的きれいな方法で取り除き、通常の背景のぼかしを維持する方法を探しています。

4

10 に答える 10

84

youBar.clipsToBounds = YES に設定すると、生え際が消えます。

この助けを願っています。

[編集]

navigationBar の下部のヘアラインについては、https: //stackoverflow.com/a/18180330/2011578 のソリューションもうまく機能します。

于 2013-10-14T13:25:48.930 に答える
5

細い境界線は、ツールバーの UIImageView サブビューであり、次のように非表示にできます。

        for (UIView *subView in [self.toolbar subviews]) {
            if ([subView isKindOfClass:[UIImageView class]]) {
                // Hide the hairline border
                subView.hidden = YES;
            }
        }
于 2013-10-13T12:41:33.097 に答える
2

ストーリーボードで簡単に解決できます。

UIBarButtonItem コンテナーとして追加されたビューを選択し、その「クリップ サブビュー」を設定してアプリを実行します。

ここに画像の説明を入力

于 2014-12-26T15:50:58.463 に答える
1

正確にはあなたが望むものではありませんが、確かにこの答えは誰かを助けるでしょう.

UINavigationBar または UIToolbar の下枠 (影) の色を非表示にする代わりに変更する場合は、バーに背景画像と影画像を設定する必要があります。

UINavigationBar の下部境界線 (影) を変更するため

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"yourImageName"] forBarMetrics:UIBarMetricsDefault]; [self.navigationController.navigationBar setShadowImage:[UIImage imageNamed:@"yourImageName"]];

UIToolbar の下部境界 (影) を変更するため

[yourToolBar setBackgroundImage:[UIImage imageNamed:@"yourImageName"] forToolbarPosition:UIBarPositionBottom barMetrics:UIBarMetricsDefault];

[yourToolBar setShadowImage:[UIImage imageNamed:@"yourImageName"] forToolbarPosition:UIBarPositionBottom];

于 2014-05-16T17:17:27.753 に答える
1

このソリューションは私にとってはうまくいきました... iOS 7でこれを試しました

[self.navigationController.navigationBar setShadowImage:[UIImage new]];
于 2014-01-23T08:14:04.323 に答える
0

ヘアラインを非表示にしてシャドウ クリップを表示する必要がある場合Tobounds は役に立ちません

使用する:

TOOLBAR.subviews
      .filter { $0 is UIImageView }
      .forEach { $0.hidden = true }

また:

for case let imageView is UIImageView in TOOLBAR.subviews {
    imageView.hidden = true 
}
于 2016-09-15T12:38:46.987 に答える
0

私の場合、ストーリーボードを介してこれを機能させることができませんでした。最終的に、外観プロキシを使用して、すべてのツールバーの影を削除しました。

[[UIToolbar appearance] setClipsToBounds:YES];

于 2015-09-22T01:28:12.023 に答える