你怎么能旋转Text,Button以及其他设计使用SwiftUI 90度controlls SwiftUI的?
我有意将我的问题建模为这个问题的 SwiftUI 版本:如何在 Swift 中为 UIButton 和 UILabel 旋转文本?
电流输出:
预期输出:
我可以使用 rotationEffect 在 SwiftUI 中旋转文本,但它不会旋转框架。如图所示,文本被旋转,但框架仍然是水平的。我也想旋转框架,这样它就不会占用水平空间。这是一个 Mac 应用程序,我使用 HStack 来防止窗口更改大小时文本和圆形视图重叠。
import SwiftUI
struct ContentView: View {
var body: some View {
HStack {
Text("Vertical text")
.rotationEffect(.degrees(-90))
Circle()
}
.frame(width: 400, height: 300)
}
}
Run Code Online (Sandbox Code Playgroud)
一个建议是使用 ZStack。这修复了圆形旁边的文本视图的外观,但它不会旋转文本视图的框架。如果 ZStack 与可调整大小的窗口一起使用,那么 Circle 可以与 Text 视图重叠,这就是我在原始示例中尝试使用 HStack 的原因。
struct ContentView: View {
var body: some View {
ZStack(alignment: .leading) {
Text("Vertical text")
.rotationEffect(.degrees(-90))
Circle()
.padding(.leading)
}
.frame(minWidth: 400, minHeight: 300)
}
}
Run Code Online (Sandbox Code Playgroud)