【发布时间】:2012-03-15 09:10:14
【问题描述】:
我已将我的 UIToolBar 色调颜色设置为某个值,并且我看到了要删除的这条边界线:
如何去除这个黑色边框>
【问题讨论】:
标签: iphone objective-c ios ipad
我已将我的 UIToolBar 色调颜色设置为某个值,并且我看到了要删除的这条边界线:
如何去除这个黑色边框>
【问题讨论】:
标签: iphone objective-c ios ipad
正确的答案是极权主义者...仅供参考。 https://stackoverflow.com/a/14448645/627299
我的回复还在下面供参考。
这是我使用白色背景工具栏所做的...
whiteToolBar.layer.borderWidth = 1;
whiteToolBar.layer.borderColor = [[UIColor whiteColor] CGColor];
也许你可以用你的颜色做同样的事情。
【讨论】:
myToolbar.clipsToBounds = true
clipToBounds 自 iPhone X 以来并不理想,因为它会将安全区域留空
你可以这样做:
self.navigationController.toolbar.clipsToBounds = YES;
【讨论】:
clipsToBounds = YES 破坏了 iPhone X 上工具栏的外观。它隐藏了顶部边框,但也阻止了工具栏的背景延伸到屏幕的底部边缘。
将样式设置为 UIBarStyleBlackTranslucent 为我做了(iOS 6)
【讨论】:
这在 iOS 版本上无法始终如一地工作,似乎在 iOS7 上也无法正常工作。我在另一个问题中回答了这个问题:https://stackoverflow.com/a/19893602/452082,您可以修改该解决方案以仅删除背景阴影(并留下您的 toolbar.backgroundColor 您喜欢的任何颜色)
【讨论】:
toolbar1.clipsToBounds = YES;
为我工作,以防有人仍在尝试使用导航栏
【讨论】:
我对这些答案有些困惑,但我错过了您使用 Outlet 的要点,所以这里要清楚的是我用来隐藏边框的快速代码:
import UIKit
class ViewController: UIViewController {
//MARK Outlets
@IBOutlet weak var ToolBar: UIToolbar!
//MARK View Functions
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
// Hide the bottom toolbar's top border
ToolBar.clipsToBounds = true
}
}
为此,我已将一个工具栏拖到视图的底部,但它不是顶部导航栏,其他问题涉及到。
【讨论】:
setShadowImage 为 [UIImage new]
【讨论】:
clipsToBounds 技术可以剪切 UIToolBar 的阴影以及背景视图。在 iPhone X 上,这意味着背景不再超出safe area。
下面的解决方案使用蒙版仅剪切 UITabBar 的顶部。掩码在 UIToolBar 子类中呈现,并且掩码框架在 layoutSubviews 的覆盖中保持更新。
class Toolbar: UIToolbar {
fileprivate let maskLayer: CALayer = {
let layer = CALayer()
layer.backgroundColor = UIColor.black.cgColor
return layer
}()
override init(frame: CGRect) {
super.init(frame: frame)
initialize()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initialize()
}
fileprivate func initialize() {
layer.mask = maskLayer
// Customize toolbar here
}
override func layoutSubviews() {
super.layoutSubviews()
// height is an arbitrary number larger than the distance from the top of the UIToolbar to the bottom of the screen
maskLayer.frame = CGRect(x: -10, y: 0, width: frame.width + 20, height: 500)
}
}
【讨论】:
let navigationController = UINavigationController(navigationBarClass: NavigationBar.self, toolbarClass: Toolbar.self)
创建一个 1 像素 x 1 像素的清晰图像并将其命名为 clearPixel.png
toolbar.setShadowImage(UIImage(named: "clearPixel.png"), forToolbarPosition: UIBarPosition.any)
【讨论】:
UIImage(),不需要资产
[[UIToolbar appearance] setBackgroundImage:[[UIImage alloc] init] forToolbarPosition:UIBarPositionBottom barMetrics:UIBarMetricsDefault];
[[UIToolbar appearance] setShadowImage:[[UIImage alloc] init] forToolbarPosition:UIBarPositionBottom];
[UIToolbar appearance].barTintColor = [UIColor ...];```
【讨论】: