如何在swiftUI中创建普通视图

Luk*_*ger 2 view ios swift ios13 swiftui

我正在尝试在SwiftUI中使用背景色创建纯视图。但是我能找到的所有内容都不是纯文本格式的元素,例如文本,按钮,图像,列表等。

当我尝试使用时View,它显示以下错误消息:

  • 无法构建“视图”,因为它没有可访问的初始化程序
  • “查看”协议只能用作一般约束,因为它具有Self或associatedType要求

如何创建具有背景色的矩形视图?

Luk*_*ger 7

只需使用 Rectangle()

文档所述:

在包含矩形的视图框架内对齐的矩形。

这是具有固定大小和背景颜色的矩形的示例

Rectangle()
    .size(CGSize(width: 10, height: 10))
    .foregroundColor(.red)
Run Code Online (Sandbox Code Playgroud)


nik*_*cks 6

以防万一您的用例类似于为 TextField 视图创建背景,这里演示了我的操作方法

这里的示例将创建一个具有不透明辅助背景的小视图,然后在其顶部渲染一个表示用户输入位置的标签、另一个白色圆角矩形,并在白色矩形内渲染一个 TextField()。

struct InputView : View {
    @State var text:          String

    var body: some View {
        ZStack{
            RoundedRectangle(cornerRadius: 15).frame(width: 310, height: 100)
                .foregroundColor(.secondary)
                .offset(y: -20)
            ZStack{
                RoundedRectangle(cornerRadius: 30).frame(width: 290, height: 40)
                    .foregroundColor(.white)
                TextField($text, placeholder: Text("City, State, Address")) {
                        print(self.text)
                        self.didEnter.toggle()
                    }
                        .frame(width: 220, height: 40, alignment: .leading)
                        .offset(x: -20)
                Text("Select Location:").bold().fontWeight(.medium)
                    .offset(y: -40)
                    .foregroundColor(.white)
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


mum*_*umu 5

这是创建UIView等内容的另一种方法。在 SwiftUI 中,每个原始视图都像 UIView 一样工作。

struct CustomView : View {

    var body: some View {
        ZStack{
            Color.red.frame(width: 300, height: 300)
            Text("This is view")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)