Как я могу удалить верхнюю границу на UIToolBar - программирование
Подтвердить что ты не робот

Как я могу удалить верхнюю границу на UIToolBar

Я установил цвет оттенка UIToolBar для некоторого значения, и есть эта граница, которую я вижу, в которой я хочу удалить:

enter image description here

Как удалить эту черную рамку >

4b9b3361

Ответ 1

Правильный ответ тоталитарный... К вашему сведению. fooobar.com/questions/62284/...

Мой ответ все еще ниже для справки.


Вот что я сделал с моей белой фоновой панелью инструментов...

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

Возможно, вы могли бы сделать то же самое с вашим цветом вместо этого.

Ответ 2

Вы можете сделать следующее:

self.navigationController.toolbar.clipsToBounds = YES;

Ответ 3

toolbar1.clipsToBounds = YES;  

Работал для меня, если кто-то все еще пытается использовать навигационную панель

Ответ 4

setShadowImage - [UIImage new]

Ответ 5

Настройка стиля для UIBarStyleBlackTranslucent сделала это для меня (iOS 6)

Ответ 6

создайте четкое изображение с разрешением 1 пиксель x 1 пиксель и назовите его clearPixel.png

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

Ответ 7

это не работает последовательно в версиях iOS, похоже, не работает на iOS7. я ответил на это в другом вопросе: fooobar.com/questions/62288/..., и вы можете изменить это решение, чтобы просто удалить тень фона (и оставить свой toolbar.backgroundColor любым цветом, который вам нравится)

Ответ 8

Я немного смутился с этими ответами, но мне не хватало точки, что вы использовали 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 top border
        ToolBar.clipsToBounds = true
    }
}

Я перетащил панель инструментов в нижней части представления для этого, и это не верхняя панель навигации, к которой относятся другие вопросы.

Ответ 9

В методе clipsToBounds выполняется сжатие тени UIToolBar, а также фонового представления. На iPhone X это означает, что фон больше не выходит за пределы безопасная область.

Неверный UIToolBar на 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)
    }

}

Исправить UIToolBar на iPhone X

Ответ 10

navigationController?.toolbar.barTintColor = .white

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

enter image description here