मैं बाहर की कोशिश कर SwiftUI
रहा हूं और मुझे आश्चर्य है कि यह पृष्ठभूमि का रंग बदलने के लिए सीधा नहीं लगता है View
। आप इसका उपयोग कैसे करते हैं SwiftUI
?
मैं बाहर की कोशिश कर SwiftUI
रहा हूं और मुझे आश्चर्य है कि यह पृष्ठभूमि का रंग बदलने के लिए सीधा नहीं लगता है View
। आप इसका उपयोग कैसे करते हैं SwiftUI
?
जवाबों:
(Xcode संस्करण 12 के अनुसार)
मुझे यकीन नहीं है कि मूल पोस्टर का मतलब पूरे स्क्रीन की पृष्ठभूमि का रंग या व्यक्तिगत विचारों का है। तो मैं सिर्फ इस उत्तर को जोड़ूंगा जो संपूर्ण स्क्रीन की पृष्ठभूमि का रंग सेट करने के लिए है।
var body: some View {
ZStack
{
Color.purple
.ignoresSafeArea()
// Your other content here
// Other layers will respect the safe area edges
}
}
मैंने .ignoresSafeArea()
अन्यथा जोड़ा , यह सुरक्षित क्षेत्र मार्जिन पर बंद हो जाएगा।
var body: some View {
Color.purple
.ignoresSafeArea(.vertical) // Ignore just for the color
.overlay(
VStack(spacing: 20) {
Text("Overlay").font(.largeTitle)
Text("Example").font(.title).foregroundColor(.white)
})
}
नोट: यह महत्वपूर्ण है कि आपका मुख्य सामग्री सुरक्षित क्षेत्र के किनारों को भी नजरअंदाज नहीं कर रही है, इसलिए इसे केवल रंग.ignoresSafeArea
पर रखना महत्वपूर्ण है।
.edgesIgnoringSafeArea(.all)
को केवल रंग में स्थानांतरित करने के लिए अपडेट किया और किसी अन्य सामग्री से नहीं। यह आपके लिए बेहतर काम करना चाहिए।
आप कुछ ऐसा कर सकते हैं:
.background(Color.black)
आपके विचार के आसपास।
जैसे। डिफ़ॉल्ट टेम्पलेट से (मैं इसे एक समूह के आसपास शामिल कर रहा हूँ):
var body: some View {
VStack {
Text("Hello SwiftUI!")
}
.background(Color.black)
}
इसमें कुछ अपारदर्शिता जोड़ने के लिए, आप .opacity
विधि को भी जोड़ सकते हैं :
.background(Color.black.opacity(0.5))
तुम भी अध्यक्ष एवं प्रबंध निदेशक द्वारा देखने के तत्व का निरीक्षण का इस्तेमाल करते हैं + देखें और क्लिक पर क्लिक कर सकते हैं Show SwiftUI Inspector
> Background
> आपका रंग
पूरी स्क्रीन भरें
var body : some View{
Color.green.edgesIgnoringSafeArea(.all)
}
इस तरह
struct ContentView : View {
@State var fullName: String = "yushuyi"
var body: some View {
VStack
{
TextField($fullName).background(SwiftUI.Color.red)
Spacer()
}.background(SwiftUI.Color.yellow.edgesIgnoringSafeArea(.all))
}
}
.edgesIgnoringSafeArea()
के लिए पृष्ठभूमि रंग । UIKit से आने वाला यह विचित्र है, लेकिन यह काम करता है!
Spacer()
VStack को स्क्रीन की ऊंचाई पर धकेल रहा है।
List
:सभी SwiftUI के iOS में List
एक द्वारा समर्थित हैं UITableView
। इसलिए आपको tableView की पृष्ठभूमि का रंग बदलने की आवश्यकता है । लेकिन चूंकि Color
और UIColor
मान थोड़े अलग हैं, आप इससे छुटकारा पा सकते हैं UIColor
।
struct ContentView : View {
init(){
UITableView.appearance().backgroundColor = .clear
}
var body: some View {
List {
Section(header: Text("First Section")) {
Text("First Cell")
}
Section(header: Text("Second Section")) {
Text("First Cell")
}
}
.background(Color.yellow)
}
}
अब आप किसी भी पृष्ठभूमि का उपयोग कर सकते हैं (सभी Color
एस सहित ) जो आप चाहते हैं
इस परिणाम को भी पहले देखें:
जैसा कि आप देख सकते हैं, आप प्रत्येक तत्व का रंग दृश्य पदानुक्रम में इस तरह सेट कर सकते हैं:
struct ContentView: View {
init(){
UINavigationBar.appearance().backgroundColor = .green
//For other NavigationBar changes, look here:(https://stackoverflow.com/a/57509555/5623035)
}
var body: some View {
ZStack {
Color.yellow
NavigationView {
ZStack {
Color.blue
Text("Some text")
}
}.background(Color.red)
}
}
}
और पहला वाला है window
:
window.backgroundColor = .magenta
बहुत ही सामान्य मुद्दा यह है कि हम SwiftUI's HostingViewController
(अभी तक) की पृष्ठभूमि का रंग नहीं हटा सकते हैं , इसलिए हम कुछ navigationView
विचारों को पदानुक्रम के माध्यम से नहीं देख सकते हैं । आपको एपीआई के लिए इंतजार करना चाहिए या उन विचारों को नकली करने की कोशिश करनी चाहिए ( अनुशंसित नहीं )।
ListCoreCellHost
यह सफेद रहता है। pasteboard.co/JeWCgMV.png
UITableViewCell.appearance().backgroundColor = .clear
साथ ही सेट करना था । :)
क्या यह समाधान काम करेगा ?:
SceneDelegate में निम्न पंक्ति जोड़ें: window.rootViewController? .view.backgroundColor.black
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
if let windowScene = scene as? UIWindowScene {
window.rootViewController?.view.backgroundColor = .black
}
कई संभावनाएं: (स्विफ्टयूआई / एक्सकोड 11)
1 .background(Color.black) //for system colors
2 .background(Color("green")) //for colors you created in Assets.xcassets
आशा है कि यह मदद :)
मुझे एक दृश्य की पृष्ठभूमि का रंग बदलने के लिए एक संशोधक घोषित करना पसंद है।
extension View {
func background(with color: Color) -> some View {
background(GeometryReader { geometry in
Rectangle().path(in: geometry.frame(in: .local)).foregroundColor(color)
})
}
}
तब मैं एक दृश्य में एक रंग में गुजरकर संशोधक का उपयोग करता हूं।
struct Content: View {
var body: some View {
Text("Foreground Label").foregroundColor(.green).background(with: .black)
}
}
आप बस एक दृश्य की पृष्ठभूमि का रंग बदल सकते हैं:
var body : some View{
VStack{
Color.blue.edgesIgnoringSafeArea(.all)
}
}
और आप ZStack का उपयोग कर सकते हैं:
var body : some View{
ZStack{
Color.blue.edgesIgnoringSafeArea(.all)
}
}
नेविगेशन बार रंग अनुकूलन के लिए नीचे दिए गए कोड का उपयोग करें
struct ContentView: View {
@State var msg = "Hello SwiftUI😊"
init() {
UINavigationBar.appearance().backgroundColor = .systemPink
UINavigationBar.appearance().largeTitleTextAttributes = [
.foregroundColor: UIColor.white,
.font : UIFont(name:"Helvetica Neue", size: 40)!]
// 3.
UINavigationBar.appearance().titleTextAttributes = [
.font : UIFont(name: "HelveticaNeue-Thin", size: 20)!]
}
var body: some View {
NavigationView {
Text(msg)
.navigationBarTitle(Text("NAVIGATION BAR"))
}
}
}
Xcode 11.5
बस स्विफ्टयूआई में अपने मुख्य दृश्य में पृष्ठभूमि रंग या छवियों को जोड़ने के लिए ZStack का उपयोग करें
struct ContentView: View {
var body: some View {
ZStack {
Color.black
}
.edgesIgnoringSafeArea(.vertical)
}
}
var body: some View {
var body: some View {
NavigationView {
ZStack {
// Background
Color.blue.edgesIgnoringSafeArea(.all)
content
}
//.navigationTitle(Constants.navigationTitle)
//.navigationBarItems(leading: cancelButton, trailing: doneButton)
//.navigationViewStyle(StackNavigationViewStyle())
}
}
}
var content: some View {
// your content here; List, VStack etc - whatever you want
VStack {
Text("Hello World")
}
}
स्विफ्ट UI में दृश्य प्रतिनिधि कोड
सामग्री दृश्य पृष्ठभूमि-रंग
window.rootViewController? .view.backgroundColor = .lightGray