Ios SwiftUI:如何设置大于或等于的约束,如UIKit';什么是自动布局?
在一个UIKit项目中,我在一个视图中有这样一个约束: 结果如下: 我想在SwiftUI中也这样做,所以我尝试了以下方法:Ios SwiftUI:如何设置大于或等于的约束,如UIKit';什么是自动布局?,ios,swiftui,Ios,Swiftui,在一个UIKit项目中,我在一个视图中有这样一个约束: 结果如下: 我想在SwiftUI中也这样做,所以我尝试了以下方法: var body: some View { ZStack(alignment: .trailing) { Style.Color.blue .cornerRadius(17) Text(text) .foregroundColor(.white) .paddi
var body: some View {
ZStack(alignment: .trailing) {
Style.Color.blue
.cornerRadius(17)
Text(text)
.foregroundColor(.white)
.padding(.horizontal, 11)
.padding(.vertical, 8)
.lineLimit(nil)
}
}
我得到了这个结果:
我不知道如何才能在UIKit中执行相同的操作,对蓝色视图应用大于或等于greather的前导约束。
此外,正如您所看到的,在单行气泡图上,蓝色视图不会粘贴到文本标签上,而是转到屏幕的前导部分。我怎样才能解决这个问题
感谢您的帮助这里有一个可能的解决方案:
struct ItemView: View {
let text: String
var body: some View {
Text(text)
.foregroundColor(.white)
.lineLimit(nil)
.padding(10)
.background(Color.blue)
.cornerRadius(17)
}
}
请注意,您可能需要提供一种方法来识别文本(如果文本可以是非唯一的)。谢谢您的回答!我刚刚在
HStack
中添加了一个带有边框.frame(宽度:104,高度:。无穷大)
的白色视图。我不知道这是否是最好的方法,但它是有效的。
struct ContentView: View {
let texts = ["Short text", "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."]
var body: some View {
ZStack(alignment: .trailing) {
Color.clear
VStack {
ForEach(texts, id: \.self) { text in
HStack {
Spacer()
ItemView(text: text)
}
.padding(.horizontal, 11)
.padding(.vertical, 8)
}
}
}
}
}