Skip to content

Instantly share code, notes, and snippets.

@renyello
renyello / ProgressCircle.swift
Last active July 21, 2023 04:54
3つの円が、中心の大きな円の円周を滑り落ちるように回るアニメーションです。
import SwiftUI
struct ProgressCircle: View {
@State private var animate = false
let colors = [Color.blue, Color.green, Color.yellow, Color.orange, Color.red, Color.purple] // Colors for each circle
@State private var colorIndex = [0, 0, 0] // Initial color index for each circle
@State private var percentage: Int = 0
let timer2 = Timer.publish(every: 0.3, on: .main, in: .common).autoconnect()
@State private var opacity = 1.0
@renyello
renyello / ProgressRectangle.swift
Created July 20, 2023 06:10
四つの小さな円が正方形の角をサイズを変えながら移動します。
import SwiftUI
struct ProgressRectangle: View {
@State private var index = [0, 1, 2, 3]
@State private var scale: [CGFloat] = [1.0, 0.4, 1.0, 0.4] // Scale for each circle
let colors = [Color("Red"), Color("Green"), Color("Blue"), Color("Yellow")] // Colors for each circle
let minScale: CGFloat = 1.0 // Minimum scale value
let maxScale: CGFloat = 2.0 // Maximum scale value
@State private var opacity = 1.0
@renyello
renyello / HuggingFaceProgressCircle.swift
Last active July 19, 2023 13:37
HuggingFaceのLoading画面に表示されるアニメーションを再現しました。カラーは青:#3498DB 黄色:#F1C40F 赤:#E74C3C を使用してます。
import SwiftUI
struct HugginFaceProgressCircle: View {
@State private var rotationDegrees: [Double] = [0, 0, 0]
@State private var startTrim: [CGFloat] = [0, 0, 0]
@State private var trimTo: CGFloat = 120.0 / 360.0
@State private var shouldRotate = true
@State private var opacity = 1.0
let timer = Timer.publish(every: 0.1, on: .main, in: .common).autoconnect()