sodalive-ios/SodaLive/Sources/FortuneWheel/FortuneWheelModel.swift

56 lines
1.6 KiB
Swift

//
// FortuneWheelModel.swift
// SodaLive
//
// Created by klaus on 2023/12/07.
//
import SwiftUI
struct FortuneWheelModel {
let titles: [String]
let size: CGFloat
let onSpinEnd: ((Int) -> ())?
let colors: [Color]
let pointerColor: Color
let strokeWidth: CGFloat
let strokeColor: Color
let animDuration: Double
let animation: Animation
let getWheelItemIndex: (() -> (Int))?
public init(
titles: [String], size: CGFloat, onSpinEnd: ((Int) -> ())?,
colors: [Color]? = nil,
pointerColor: Color = .red,
strokeWidth: CGFloat = 5,
strokeColor: Color = .white,
animDuration: Double = Double(2),
animation: Animation? = nil,
getWheelItemIndex: (() -> (Int))? = nil
) {
self.titles = titles
self.size = size
self.onSpinEnd = onSpinEnd
self.colors = colors ?? [
Color(hex: "#D73535"),
Color(hex: "#FF5151"),
Color(hex: "#FF7C32"),
Color(hex: "#FFAF13"),
Color(hex: "#FFC658"),
Color(hex: "#8BDA70"),
Color(hex: "#06AB97"),
Color(hex: "#12AAFF"),
Color(hex: "#0052B3"),
Color(hex: "#7444FF"),
]
self.pointerColor = pointerColor
self.strokeWidth = strokeWidth
self.strokeColor = strokeColor
self.animDuration = animDuration
self.animation = animation ?? Animation.timingCurve(0.51, 0.97, 0.56, 0.99, duration: animDuration)
self.getWheelItemIndex = getWheelItemIndex
}
}