如何删除UIToolBar上的顶部边框

时间:2012-02-24 22:16:50

标签: iphone objective-c ios ipad

我已将UIToolBar色调颜色设置为某个值,并且我看到了我要删除的边框线:

enter image description here

如何删除此黑色边框>

11 个答案:

答案 0 :(得分:135)

你可以这样做:

self.navigationController.toolbar.clipsToBounds = YES;

答案 1 :(得分:46)

toolbar1.clipsToBounds = YES;  

如果有人还在尝试导航栏

,请为我工作

答案 2 :(得分:19)

正确的答案是极权主义者的答案......仅供参考。 https://stackoverflow.com/a/14448645/627299

我的回复仍然低于参考。


这是我用WHITE背景工具栏做的...

whiteToolBar.layer.borderWidth = 1;
whiteToolBar.layer.borderColor = [[UIColor whiteColor] CGColor];    

也许你可以用你的颜色做同样的事情。

答案 3 :(得分:12)

setShadowImage to [UIImage new]

答案 4 :(得分:4)

将样式设置为UIBarStyleBlackTranslucent为我做了(iOS 6)

答案 5 :(得分:3)

创建1像素x 1像素清晰图像并将其命名为clearPixel.png

toolbar.setShadowImage(UIImage(named: "clearPixel.png"), forToolbarPosition: UIBarPosition.any)

答案 6 :(得分:2)

这在iOS版本上不能正常工作,似乎不适用于iOS7。我在另一个问题中回答了这个问题:https://stackoverflow.com/a/19893602/452082您可以修改该解决方案,只需删除背景阴影(并保留toolbar.backgroundColor您喜欢的任何颜色)

答案 7 :(得分:1)

我对这些答案感到有些困惑,但是我错过了你使用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
    }
}

我已经将一个工具栏拖到了视图的底部,并且它不是其他一些问题所引用的顶部导航栏。

答案 8 :(得分:1)

clipsToBounds技术会剪切UIToolBar的阴影以及背景视图。在iPhone X上,这意味着背景不再超出safe area

Incorrect UIToolBar on iPhone X

下面的解决方案使用遮罩仅剪辑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)
    }

}

Correct UIToolBar on iPhone X

答案 9 :(得分:0)

navigationController?.toolbar.barTintColor = .white

navigationController?.toolbar.setShadowImage(UIImage(), forToolbarPosition: .any)

enter image description here

答案 10 :(得分:0)

[[UIToolbar appearance] setBackgroundImage:[[UIImage alloc] init] forToolbarPosition:UIBarPositionBottom barMetrics:UIBarMetricsDefault];

[[UIToolbar appearance] setShadowImage:[[UIImage alloc] init] forToolbarPosition:UIBarPositionBottom];

[UIToolbar appearance].barTintColor = [UIColor ...];```