সুইফটুই - আমি কীভাবে কোনও দৃশ্যের পটভূমি রঙ পরিবর্তন করব?


114

আমি চেষ্টা করতে শুরু SwiftUIকরেছি এবং আমি আশ্চর্য হয়েছি যে এটির পটভূমির রঙ পরিবর্তন করা সহজবোধ্য বলে মনে হয় না View। আপনি কিভাবে এটি ব্যবহার করে করবেন SwiftUI?

উত্তর:


119

আপনি যেমন কিছু করতে পারেন:

.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

পরিদর্শন দেখুন

বিশদ বিবরণ পরিদর্শন করুন


4
আমি এটিকে নেভিগেশন ভিউয়ের জন্য ব্যবহার করতে পারি না নেভিগেশন ভিউয়ের সাথে কী করবেন আপনার কোনও ধারণা আছে?
আটলাস

আপনি কি সংস্করণ ব্যবহার করছেন?
জুনিয়ররুবিস্ট

অ্যাটলয়াস, ইউআইএনএভিগেশন বার.অ্যাপিয়ারেন্স ()। ব্যাকগ্রাউন্ড কালার =। ব্ল্যাক
কুগুটসুমেন

আমি যখন এটি আয়তক্ষেত্র () ব্যবহার করে করি, তখন আমি একটি কালো ভরাট অঞ্চল দিয়ে শেষ করি।
ক্রিস প্রিন্স

114

স্ক্রিনের ব্যাকগ্রাউন্ড রঙ

(এক্সকোড সংস্করণ 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 চালু রাখা জরুরী যাতে আপনার মূল বিষয়বস্তু সুরক্ষিত অঞ্চল প্রান্তগুলিকেও উপেক্ষা করে না।


6
আপনি কীভাবে নেভিগেশনভিউয়ের জন্য পটভূমির রঙ পরিবর্তন করবেন জানেন?
অটলায়াস

4
তবে আপনার কাজ যদি নেভিগেশনভিউ এবং কোনও তালিকা বা স্ক্রোলভিউ নেভিগেশন বারের শিরোনামটি ভেঙে না যায় তবে এটি কাজ করবে
রিচার্ড উইথারস্পুন

4
আমি শুধু ভাগ্যবিহীন উভয় চেষ্টা করেছিলাম। আমি নেভিগেশনভিউ এবং স্ক্রোলভিউয়ের সাথে স্ক্রিনের পটভূমির রঙ নিয়ে কাজ করার জন্য একটি উপায় বের করার চেষ্টা করছিলাম
রিচার্ড উইদারস্পুন

4
আরে @ রায়ান, আমি আমার রঙগুলি .edgesIgnoringSafeArea(.all)কেবল রঙে নিয়ে যেতে এবং অন্য কোনও সামগ্রীতে নয় আপডেট করেছি । এটি আপনার পক্ষে আরও ভাল কাজ করা উচিত।
মার্ক মোয়েকেনস

4
NavigationView সংক্রান্ত, যেমন এখানে দেখানো মাত্র NavigationView ভিতরে উপরে ZStack পদ্ধতি ব্যবহার করুন: stackoverflow.com/a/58230473/457478
রায়ান


15

এটার মত

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

4
নোট করুন যে আপনার পটভূমি রঙ যুক্ত .edgesIgnoringSafeArea()করা প্রয়োজন । ইউআইকিট থেকে আসা এটি উদ্ভট, তবে এটি কার্যকর!
এমবিএক্সদেব

4
দ্রষ্টব্য: এটি কাজ করে কারণ Spacer()স্ক্রিনের উচ্চতায় VStack চাপছে।
মার্ক মোয়েকেন্স

9

এর জন্য 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সাদা থাকে। পেস্টবোর্ড.কম
জেডব্লিউসিজিএমভি.পিএনজি

ঠিক আছে আমি 15 মিনিট পরে এখানে পোস্টিং ভেবেছিলাম, UITableViewCell.appearance().backgroundColor = .clearপাশাপাশি সেট করতে হবে । :)
টিগিলানী ২

4

এই সমাধান কাজ করবে ?:

দৃশ্যের সাথে নিম্নলিখিত লাইন যুক্ত করুন: উইন্ডো.রোটভিউ কনট্রোলার? .ভিউ.ব্যাকগ্রাউন্ড कलার = .ব্ল্যাক

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        if let windowScene = scene as? UIWindowScene {

                window.rootViewController?.view.backgroundColor = .black
}

4

বেশ কয়েকটি সম্ভাবনা: (সুইফটুআই / এক্সকোড ১১)

.background(Color.black) //for system colors

.background(Color("green")) //for colors you created in Assets.xcassets

  1. তা না হলে আপনি কি করতে পারেন Command+ + Clickউপাদান এবং সেখান থেকে এটি পরিবর্তন।

আশা করি এটি সাহায্য করবে :)


3

আমি একটি দৃশ্যের পটভূমির রঙ পরিবর্তন করার জন্য একটি সংশোধক ঘোষণা করতে চাই।

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

}

এখানে চিত্র বর্ণনা লিখুন


2

আপনি কেবল কোনও দৃশ্যের পটভূমি রঙ পরিবর্তন করতে পারেন:

var body : some View{


    VStack{

        Color.blue.edgesIgnoringSafeArea(.all)

    }


}

এবং আপনি জেডস্ট্যাক ব্যবহার করতে পারেন:

var body : some View{


    ZStack{

        Color.blue.edgesIgnoringSafeArea(.all)

    }


}

2

এক্সকোড 11.5

সুইফটুইতে আপনার মূল দৃশ্যে ব্যাকগ্রাউন্ড রঙ বা চিত্র যুক্ত করতে কেবল জেডস্ট্যাক ব্যবহার করুন

struct ContentView: View {
    var body: some View {
        ZStack {
            Color.black
        }
        .edgesIgnoringSafeArea(.vertical)
    }
}

1

নেভিগেশন বার রঙিন কাস্টমাইজেশনের জন্য কোডের নীচে ব্যবহার করুন

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

এখানে চিত্র বর্ণনা লিখুন


0

নেভিগেশনভিউ উদাহরণ:

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

-6

সুইফট ইউআই- তে দৃশ্য প্রতিনিধি সম্পর্কিত কোড

সামগ্রী দেখুন ব্যাকগ্রাউন্ড-রঙ

উইন্ডো.রোটভিউ কনট্রোলার?। ভিউ.ব্যাকগ্রাউন্ড কালার = .লাইট গ্রে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.