Ich habe meine UIToolBar-Tönungsfarbe auf einen Wert gesetzt, und es gibt diese Grenzlinie, die ich sehe, in der ich entfernen möchte:
Wie entferne ich diesen schwarzen Rand?
Die richtige Antwort ist die von totalitären ... FYI. https://stackoverflow.com/a/14448645/627299
Meine Antwort ist noch unten als Referenz.
Folgendes habe ich mit meiner weißen Hintergrundsymbolleiste gemacht ...
whiteToolBar.layer.borderWidth = 1;
whiteToolBar.layer.borderColor = [[UIColor whiteColor] CGColor];
Vielleicht könnten Sie stattdessen dasselbe mit Ihrer Farbe machen.
Das kannst du so machen:
self.navigationController.toolbar.clipsToBounds = YES;
toolbar1.clipsToBounds = YES;
Hat für mich gearbeitet, falls noch jemand mit der Navigationsleiste versucht
setShadowImage auf [UIImage new]
Wenn Sie den Stil auf UIBarStyle Black Translucent setzen, wurde dies für mich getan (iOS 6).
erstellen Sie ein 1 Pixel x 1 Pixel großes klares Bild und nennen Sie es clearPixel.png
toolbar.setShadowImage(UIImage(named: "clearPixel.png"), forToolbarPosition: UIBarPosition.any)
dies funktioniert nicht konsistent bei iOS-Versionen, es scheint nicht bei iOS7 zu funktionieren. Ich habe dies in einer anderen Frage beantwortet: https://stackoverflow.com/a/19893602/452082 und Sie können diese Lösung ändern, um nur den Hintergrundschatten zu entfernen (und Ihren toolbar.backgroundColor
in jeder beliebigen Farbe zu lassen).
Diese Antworten haben mich etwas verwirrt, aber ich habe den Punkt verpasst, dass Sie ein Outlet verwendet haben. Um nur klar zu sein, hier der Swift-Code, mit dem ich die Grenze verdeckte:
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
}
}
Ich hatte dazu eine Symbolleiste an den unteren Rand einer Ansicht gezogen, und es ist nicht die obere Navigationsleiste, auf die sich andere Fragen beziehen.
Die clipsToBounds
-Technik schneidet den Schatten der UIToolBar sowie die Hintergrundansicht. Auf einem iPhone X bedeutet dies, dass der Hintergrund nicht mehr außerhalb des sicheren Bereichs liegt.
Die Lösung unten verwendet eine Maske, um nur die Oberseite der UITabBar zu beschneiden. Die Maske wird in einer UIToolBar-Unterklasse gerendert und der Maskenrahmen wird in einer Überschreibung von layoutSubviews
aktualisiert.
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)
}
}