iOS 7 では、Apple はUIToolbar
上部に 1 ピクセルのヘアラインを表示するように変更しました。これは場合によっては視覚的に気を散らすものであり、それを削除するための公開 API はないようです。
shadowImage の設定は機能しません。
ヘアラインを比較的きれいな方法で取り除き、通常の背景のぼかしを維持する方法を探しています。
iOS 7 では、Apple はUIToolbar
上部に 1 ピクセルのヘアラインを表示するように変更しました。これは場合によっては視覚的に気を散らすものであり、それを削除するための公開 API はないようです。
shadowImage の設定は機能しません。
ヘアラインを比較的きれいな方法で取り除き、通常の背景のぼかしを維持する方法を探しています。
youBar.clipsToBounds = YES に設定すると、生え際が消えます。
この助けを願っています。
[編集]
navigationBar の下部のヘアラインについては、https: //stackoverflow.com/a/18180330/2011578 のソリューションもうまく機能します。
細い境界線は、ツールバーの UIImageView サブビューであり、次のように非表示にできます。
for (UIView *subView in [self.toolbar subviews]) {
if ([subView isKindOfClass:[UIImageView class]]) {
// Hide the hairline border
subView.hidden = YES;
}
}
ストーリーボードで簡単に解決できます。
UIBarButtonItem コンテナーとして追加されたビューを選択し、その「クリップ サブビュー」を設定してアプリを実行します。
正確にはあなたが望むものではありませんが、確かにこの答えは誰かを助けるでしょう.
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];
このソリューションは私にとってはうまくいきました... iOS 7でこれを試しました
[self.navigationController.navigationBar setShadowImage:[UIImage new]];
ヘアラインを非表示にしてシャドウ クリップを表示する必要がある場合Tobounds は役に立ちません
使用する:
TOOLBAR.subviews
.filter { $0 is UIImageView }
.forEach { $0.hidden = true }
また:
for case let imageView is UIImageView in TOOLBAR.subviews {
imageView.hidden = true
}
私の場合、ストーリーボードを介してこれを機能させることができませんでした。最終的に、外観プロキシを使用して、すべてのツールバーの影を削除しました。
[[UIToolbar appearance] setClipsToBounds:YES];