Swiftui 快速过渡/动画
我是SwiftUI新手,已经成功地构建了一个简单的游戏。 除了我计划实现某种图像动画/转换以将图像引入视图之外,所有工作都已完成。 图像格式正确,但过于突然,希望能够软化图像的光晕 我尝试过使用动画的方法,但没有什么不同。 我希望有人能给我指出正确的方向Swiftui 快速过渡/动画,swiftui,Swiftui,我是SwiftUI新手,已经成功地构建了一个简单的游戏。 除了我计划实现某种图像动画/转换以将图像引入视图之外,所有工作都已完成。 图像格式正确,但过于突然,希望能够软化图像的光晕 我尝试过使用动画的方法,但没有什么不同。 我希望有人能给我指出正确的方向 var body: some View { NavigationView { ZStack { Image("background")
var body: some View {
NavigationView {
ZStack {
Image("background")
.resizable()
.aspectRatio(contentMode: .fill)
.scaledToFill()
.edgesIgnoringSafeArea(.all)
VStack {
Text("Tap Correct Image")
.font(.headline)
.foregroundColor(Color.blue)
ForEach((0...2), id: \.self) { number in
Image(self.naijaObject[number])
.resizable()
.frame(width: 100, height: 100)
.border(Color.black,width: 1)
.transition(.slide)
.animation(.easeInOut(duration: 1))
.onTapGesture {
self.pictureTapped(number)
}
}
.navigationBarTitle(Text(processCorrectAnswer))
.alert(isPresented: $showAlert) {
Alert(title: Text("\(alertTitle), Your score is \(score)"), dismissButton: .default(Text("Continue")) {
self.askQuestion()
})
}
}//End of VStack
}//End of
} //End of Naviagtion View
} //End of View
//Function to action which object is tapped
func pictureTapped(_ tag: Int) {
if tag == correctAnswer {
score += 1
alertTitle = "Correct"
} else {
score -= 1
alertTitle = "Wrong"
}
showAlert = true
}
//Function to continue the game
func askQuestion() {
naijaObject.shuffle()
correctAnswer = Int.random(in: 0...2)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
我想我明白了,你想要实现什么,但在未来更好地呈现更多的代码。这里我使用了
DispatchQueue.main.asyncAfter(截止日期:.now()+1)
将变量showart
更改为true
。它工作顺利,希望能帮助您:
结构问题游戏:查看{
@状态私有变量showAlert=false
@国家私有风险值分数:Int=0
@国家私有var correctAnswer=1
@国家私有var=false
var body:一些观点{
导航视图{
VStack{
文本(“点击正确的图像”)
.font(.headline)
ForEach((0…2),id:\.self){中的数字
矩形()
.框架(宽度:100,高度:100)
.foregroundColor(self.tapped&&number==self.correctAnswer?.green:.black)//您可以为动画做任何事情
.animation(.easeInOut(持续时间:1.0))
.ontapsigne{
self.pictureTapted(编号)
}
}
.navigationBarTitle(文本(“回答问题”))
.alert(显示:self.$showAlert){
警报(标题:文本(“您的分数是\(分数)”),解除按钮:。默认值(文本(“继续”)){
self.askQuestion()
})
}
}
}
}
func pictureTaped(uTag:Int){
抽头=真
如果标记==correctAnswer{
分数+=1
}否则{
分数-=1
}
DispatchQueue.main.asyncAfter(截止日期:.now()+1){
self.showart=true
}
}
//函数继续游戏
func askQuestion(){
抽头=假
showarert=false
correctAnswer=Int.random(in:0…2)
}
}
结构问题游戏预览:PreviewProvider{
静态var预览:一些视图{
问题游戏()
}
}
p.S.不,我没有找到平稳显示警惕的方法。在这种情况下,当您点击图像时,最好使用
ZStack
并将警报(或任何其他视图)不透明度从0更改为1(带有动画)。我很想测试一下。再次感谢。@ufookoro,很高兴它帮助了你