SwiftUI:动画期间的文本问题

时间:2020-02-22 17:51:16

标签: ios swift swiftui

我遇到一个涉及SELECT employee_id, First_name, Salary AS Pay FROM employee WHERE Salary > 70000 ORDER BY Salary DESC LIMIT 3; 的动画问题。基本上,我需要更改文本并设置其位置动画。在下面看看这个简单的例子:

Text

结果是:

enter image description here

这里有一些问题。可能最烦人的是import SwiftUI struct ContentView: View { @State private var isOn = false @State private var percentage = 100 var body: some View { ZStack { Text("\(percentage)") .font(.title) .background(Color.red) .position(isOn ? .init(x: 150, y: 300) : .init(x: 150, y: 100)) .animation(.easeOut(duration: 1), value: isOn) VStack { Spacer() Button(action: { self.isOn.toggle() //just to make the issue happen if self.percentage == 100 { self.percentage = 0 } else { self.percentage = 100 } }, label: { Text("SWITCH") }) } } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } 的毛刺,我只想对...的位置进行动画处理,我不想对文本本身进行动画处理,也不想对文本的宽度进行动画处理文本。有任何想法吗?谢谢。

2 个答案:

答案 0 :(得分:4)

请在按钮上尝试以下操作:

 Button(action: 
 {
   //just to make the issue happen
   if self.percentage == 100 
   {
     self.percentage = 0
   } 
   else 
   {
     self.percentage = 100
   }
   withAnimation(.easeInOut(duration: 1.0)) {
     self.isOn.toggle()
   }

 }, label: {
   Text("SWITCH")
 })

然后从标签中删除该行

 .animation(.easeOut(duration: 1), value: isOn)

我还没有测试。

答案 1 :(得分:4)

可能的替代方法是添加缩放因子,它取代截断模式并产生不同的效果,在某些情况下可能更可取。

唯一需要的更改如下(因子可以修改)

    id_person      name
------------------------------
       2           Kevin