it-swarm.com.ru

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

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

enter image description here

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

50
adit

Правильный ответ тоталитарный ... К вашему сведению. https://stackoverflow.com/a/14448645/627299

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


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

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

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

19
Keenan

Вы можете сделать так:

self.navigationController.toolbar.clipsToBounds = YES;
134
totalitarian
toolbar1.clipsToBounds = YES;  

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

46
Ravi Mudaliar - Seffcon

setShadowImage, чтобы [UIImage новый]

12
Cherpak Evgeny

Установка стиля на UIBarStyle Black Translucent сделала это для меня (iOS 6)

4
DrMickeyLauer

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

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

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

2
natbro

Я немного запутался с этими ответами, но мне не хватало того, что вы использовали Outlet, так что для ясности вот код Swift, который я использовал, чтобы скрыть границу:

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
    }
}

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

1
GazB

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

 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

1
Alex Givens
navigationController?.toolbar.barTintColor = .white

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

 enter image description here

0
damo