How to create a plain view in swiftUI
我正在尝试在 SwiftUI 中创建一个带有背景色的普通视图。但我能找到的所有元素都不是普通视图,如文本、按钮、图像、列表等。
当我尝试使用
- 'View' cannot be constructed because it has no accessible initializers
- 'View' Protocol can only be used as a generic constraint because it has Self or associatedType requirements
如何创建带有背景颜色的矩形视图?
只需使用
如文档所述:
A rectangular shape aligned inside the frame of the view containing it.
这里是一个固定大小和背景颜色的矩形示例
1 2 3 | Rectangle() .size(CGSize(width: 10, height: 10)) .foregroundColor(.red) |
以防万一您的用例类似于为 TextField 视图创建背景,以下是我的操作演示
这里的示例将创建一个带有不透明辅助背景的小视图,然后在其顶部呈现一个标签,表示用户输入一个位置,另一个白色圆角矩形,以及在白色矩形内的 TextField()。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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) } } } } |
这是另一种创建类似 UIView 的方法。在 SwiftUI 中,每个原始视图都像 UIView 一样工作。
1 2 3 4 5 6 7 8 9 | struct CustomView : View { var body: some View { ZStack{ Color.red.frame(width: 300, height: 300) Text("This is view") } } } |
正如另一个答案中所建议的,您可以使用像
1 2 3 | Rectangle() .size(CGSize(width: 10, height: 10)) .foregroundColor(.blue) |
但我认为直接使用
1 2 | Color.blue .frame(width: 10, height: 10) |