Изменить цвет фона представления в swiftUI

введите описание изображения здесь

Я хочу создать простую форму и изменить цвет фона текстового поля, но Xcode предоставляет мне вариант .background(background: View) и т. Д., Но не .background(Color()).


person subhangi pawar    schedule 06.11.2019    source источник
comment
Разместите код, а не изображение.   -  person Mojtaba Hosseini    schedule 06.11.2019
comment
НЕ размещайте изображения кода, данных, сообщений об ошибках и т. д. - скопируйте или введите текст в вопрос. stackoverflow.com/help/how-to-ask   -  person Rob    schedule 07.11.2019


Ответы (3)


Color соответствует View. Таким образом, вы можете использовать его как любой другой View. Проблема с вашим кодом заключается в том, что вы добавляете cornerRadius внутри модификатора background. Должно получиться так:

TextField("Title", text: .constant("text"))
    .background(Color.red)
    .cornerRadius(5)
person Mojtaba Hosseini    schedule 06.11.2019
comment
Нет - не работает для TextField. Правильный ответ здесь: stackoverflow.com / questions / 62848276 / - person Antonín Karásek; 08.01.2021
comment
Это - ответ на вопрос. Название вводит в заблуждение. @ AntonínKarásek - person Mojtaba Hosseini; 08.01.2021

Попробуйте код ниже.

struct ContentView: View {

   @State var name: String = ""

   var body: some View {

       VStack(alignment: .leading, spacing: 10) {

           Text("NAME").font(.headline)

           TextField("Enter some text", text: $name)
           .padding(.horizontal , 15)
           .frame(height: 40.0)
           .background(Color(red: 239/255, green: 243/255, blue: 244/255))
           .overlay(
               RoundedRectangle(cornerRadius: 5)
                   .stroke(Color.gray.opacity(0.3), lineWidth: 1)
           )
       }.padding(.horizontal , 15)
   }
}
person Rohit Makwana    schedule 06.11.2019

person    schedule
comment
Публикуя ответы, лучше всего объяснить, как ваш ответ решает проблему задающего вопрос. - person App Dev Guy; 07.11.2019
comment
Это тоже неправильное решение, поскольку, когда вы затем нажимаете на TextField, текстовая область будет иметь тот же цвет. - person Matt; 26.04.2020