दोनों पर ढाल सेट करना मैं एक परत बनाकर नेविगेशन बार की पृष्ठभूमि को बदलने और नेविगेशन बार में एक उपन्यास के रूप में जोड़ने की कोशिश कर रहा हूं। हालांकि, यह केवल नेविगेशन बार को प्रभावित कर रहा है।नेविगेशन बार और स्टेटस बार
मैं इसे स्क्रीन के पूरे शीर्ष प्रभावित करने के लिए wan't। संहिता में शामिल हैं:
let navBarLayer = StyleUtils.createGradientLayerWithColors(color: StyleUtils.Colors.SKY_BLUE, frame: (self.navigationController?.navigationBar.bounds)!)
self.navigationController?.navigationBar.layer.addSublayer(navBarLayer)
createGradientLayerWithColors समारोह दिया फ्रेम के लिए एक CAGradientLayer देता है।
मुझे क्या याद आ रही है? पहले ही, आपका बहुत धन्यवाद।
संपादित करें:
मैं नथानिएल जवाब कोशिश की, लेकिन यह मिल गया:
यह उल्लेख है कि यह भी एक tableview है लायक है।
समाधान:
मैं इस question है कि मुझे इस समस्या का समाधान में मदद मिली पाया।
अंतिम सही कोड है:
func setNavBarColor() {
let navBar = self.navigationController?.navigationBar
//Make navigation bar transparent
navBar?.setBackgroundImage(UIImage(), for: .default)
navBar?.shadowImage = UIImage()
navBar?.isTranslucent = true
//Create View behind navigation bar and add gradient
let behindView = UIView(frame: CGRect(x: 0, y:0, width: UIApplication.shared.statusBarFrame.width, height: UIApplication.shared.statusBarFrame.height + (navBar?.frame.height)!))
let layerTop = StyleUtils.createGradientLayerWithColors(color: StyleUtils.Colors.SKY_BLUE, frame: behindView.bounds)
behindView.layer.insertSublayer(layerTop, at: 0)
self.navigationController?.view.insertSubview(behindView, belowSubview: navBar!)
}
मैंने इस विधि को UINavigationController के विस्तार में रखा है, जिसे इसे NavavarStyle प्रारंभ किया जाता है, और यह वास्तव में अच्छी तरह से काम करता है! – LargeGlasses