আমি চেষ্টা করতে শুরু SwiftUI
করেছি এবং আমি আশ্চর্য হয়েছি যে এটির পটভূমির রঙ পরিবর্তন করা সহজবোধ্য বলে মনে হয় না View
। আপনি কিভাবে এটি ব্যবহার করে করবেন SwiftUI
?
আমি চেষ্টা করতে শুরু SwiftUI
করেছি এবং আমি আশ্চর্য হয়েছি যে এটির পটভূমির রঙ পরিবর্তন করা সহজবোধ্য বলে মনে হয় না View
। আপনি কিভাবে এটি ব্যবহার করে করবেন SwiftUI
?
উত্তর:
আপনি যেমন কিছু করতে পারেন:
.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
(এক্সকোড সংস্করণ 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)
কেবল রঙে নিয়ে যেতে এবং অন্য কোনও সামগ্রীতে নয় আপডেট করেছি । এটি আপনার পক্ষে আরও ভাল কাজ করা উচিত।
পুরো পর্দা পূরণ করুন
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()
করা প্রয়োজন । ইউআইকিট থেকে আসা এটি উদ্ভট, তবে এটি কার্যকর!
Spacer()
স্ক্রিনের উচ্চতায় VStack চাপছে।
List
:আইওএস-এ সমস্ত সুইফটুই'র List
সমর্থিত UITableView
। সুতরাং আপনাকে টেবিলভিউর পটভূমির রঙ পরিবর্তন করতে হবে । তবে যেহেতু 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
খুব সাধারণ সমস্যা হ'ল আমরা সুইফটইউআই এর HostingViewController
(এখনও) এর পটভূমির রঙ মুছে ফেলতে পারি না , সুতরাং আমরা navigationView
ভিউ হায়ারার্কির মাধ্যমে কিছু মতামত দেখতে পাই না । আপনার এপিআইয়ের জন্য অপেক্ষা করা উচিত বা এই মতামতগুলিকে নকল করার চেষ্টা করা উচিত ( প্রস্তাবিত নয় )।
ListCoreCellHost
সাদা থাকে। পেস্টবোর্ড.কম
UITableViewCell.appearance().backgroundColor = .clear
পাশাপাশি সেট করতে হবে । :)
এই সমাধান কাজ করবে ?:
দৃশ্যের সাথে নিম্নলিখিত লাইন যুক্ত করুন: উইন্ডো.রোটভিউ কনট্রোলার? .ভিউ.ব্যাকগ্রাউন্ড कलার = .ব্ল্যাক
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
if let windowScene = scene as? UIWindowScene {
window.rootViewController?.view.backgroundColor = .black
}
বেশ কয়েকটি সম্ভাবনা: (সুইফটুআই / এক্সকোড ১১)
ঘ .background(Color.black) //for system colors
ঘ .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)
}
}
এবং আপনি জেডস্ট্যাক ব্যবহার করতে পারেন:
var body : some View{
ZStack{
Color.blue.edgesIgnoringSafeArea(.all)
}
}
এক্সকোড 11.5
সুইফটুইতে আপনার মূল দৃশ্যে ব্যাকগ্রাউন্ড রঙ বা চিত্র যুক্ত করতে কেবল জেডস্ট্যাক ব্যবহার করুন
struct ContentView: View {
var body: some View {
ZStack {
Color.black
}
.edgesIgnoringSafeArea(.vertical)
}
}
নেভিগেশন বার রঙিন কাস্টমাইজেশনের জন্য কোডের নীচে ব্যবহার করুন
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"))
}
}
}
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")
}
}
সুইফট ইউআই- তে দৃশ্য প্রতিনিধি সম্পর্কিত কোড
সামগ্রী দেখুন ব্যাকগ্রাউন্ড-রঙ
উইন্ডো.রোটভিউ কনট্রোলার?। ভিউ.ব্যাকগ্রাউন্ড কালার = .লাইট গ্রে