【发布时间】:2019-06-20 06:15:38
【问题描述】:
我很难理解为什么会发生这种情况。我将问题简化为最小的表达方式。
我有一个 Text 视图,当被删除时,它应该只是淡出。仅为了清楚起见,添加了 .transition(.opacity)。它不应该是必需的,因为它是默认设置。然而,结果是除了淡出之外,文本视图还向右滑动。
通过调整文本长度,我意识到在过渡期间,它的左边距希望与 CHANGE 按钮的左边距对齐。但是为什么呢?!
反之,加回来时,它工作正常,没有任何动静。只是一个不错的淡入效果。
这个问题不仅出现在 iOS 上,macOS 也出现。使用 Xcode 11 beta 2。
import SwiftUI
struct ContentView : View {
@State private var showText = true
var body: some View {
VStack {
Spacer()
if showText {
Text("I should always be centered!").font(.largeTitle).transition(.opacity)
}
Spacer()
Button(action: {
withAnimation(.basic(duration: 1.5)) { self.showText.toggle() }
}, label: {
Text("CHANGE").font(.title)
})
Spacer()
}
}
}
【问题讨论】: