簡體   English   中英

SwiftUI 從 RoundedRectangle 到 Circle 的縮放效果

[英]SwiftUI scale effect from RoundedRectangle to Circle

我正在嘗試制作一個矩形按鈕,該按鈕在點擊手勢時變成了一個具有縮放和平滑動畫的圓形按鈕。

ZStack {
   ZStack {
       RegularPolygon(sides: started ? 50 : 4)
           .scale(started ? 0.75 : 1.0)
           .fill(started ? Color(.green) : .red)
   }
   .frame(width: 350, height: 200)
   .padding()
   Text(started ? "start" : "Stop")
       .font(.system(size: 36, design:.rounded))
       .fontWeight(.heavy)
}
.animation(.easeOut(duration: 0.5))

到目前為止,這是我的代碼,但我不喜歡這種方法,而且我認為這是一項艱巨的簡單任務。

將矩形按鈕轉換為具有平滑縮放動畫的圓形按鈕的最佳方法是什么?

嘗試使用此代碼將矩形按鈕更改為圓形按鈕。

ZStack {
        // Rectangle CGFloat(self.isTapped ? 25.0 : 50)
        RoundedRectangle(cornerRadius: CGFloat(self.isTapped ? 25.0 : 50))
            .foregroundColor(self.isTapped ?.red :.blue)
            .frame(width: CGFloat(self.isTapped ? 200 : 100), height: CGFloat(self.isTapped ? 40 : 100), alignment: .center)
        
       Text(self.isTapped ? "Start" : "Stop")
        .foregroundColor(Color.white)
    }
    .animation(.easeOut(duration: 0.5))
    .onTapGesture {
        withAnimation {
            self.isTapped.toggle()
        }
        
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM