简单地说,我想实现这幅图中所示的目标。
有一个图像和一个文本并排放置。文本从与图像相同的高度开始,然后当它有足够的空间时,它从前缘继续。
外观描述:
的数据
我的代码不会在有足够空间的情况下 Package 文本。这是它显示的内容:
渲染视图:
的
我使用的是最新版本的SwiftUI。
VStack {
HStack(alignment: .top) {
AsyncImage(url: URL(string: "https://images.unsplash.com/photo-1619679505795-a4d0e6be5e02?q=80&w=1964&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D")) { phase in
if let image = phase.image {
image
.resizable()
.scaledToFit()
} else if phase.error != nil {
Text("There was an error loading the image.")
} else {
ProgressView()
}
}
.containerRelativeFrame(.horizontal, alignment: .leading) { size, axis in
size * 0.25
}
Text("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas bibendum magna magna, eget dignissim leo lobortis eget.Maecenas bibendum magna magna, eget dignissim leo lobortis eget. Sed metus quam, condimentum in quam vel, rhoncus tempor purus. Proin tortor augue, commodo eu turpis in, rhoncus varius lorem. Morbi ut sapien eget diam viverra mattis quis et augue.")
.padding(.leading)
}
}
.padding(.horizontal, 12)
.padding(.vertical, 20)
.border(Color.black)
字符串
1条答案
按热度按时间jckbn6z71#
在代码中实现文本换行的一种方法是使用
GeometryReader
。此SwiftUI视图允许您为文本指定一个框架,然后将文本换行在该框架内。使用GeometryReader
,您可以确保文本正确换行,而不管设备或屏幕大小如何。这是你修改后的代码:
字符串
的数据
希望能帮到您,如果有什么误会,请告诉我,我很乐意为您解决,并详细解释解决方案。