tapptitude / TTFortuneWheel-iOS

Fortune spinning wheel that supports custom drawing.
MIT License
132 stars 41 forks source link

How to get the slice value at Finish State #42

Closed abdurrazax closed 2 years ago

abdurrazax commented 3 years ago

Is there any option to get the top value or any pointing value after the spinner will stop ? I'm need the index of slice at the top.

IshuRocks commented 3 years ago
@IBOutlet weak var spinningWheel: TTFortuneWheel!{
    didSet {

        spinningWheel.slices = slices
        spinningWheel.equalSlices = true
        spinningWheel.frameStroke.width = 0
        spinningWheel.titleRotation = CGFloat.pi
        spinningWheel.slices.enumerated().forEach { (pair) in
            let slice = pair.element as! CarnivalWheelSlice
            let offset = pair.offset
            switch offset % 4 {
            case 0: slice.style = .brickRed
            case 1: slice.style = .sandYellow
            case 2: slice.style = .babyBlue
            case 3: slice.style = .deepBlue
            default: slice.style = .brickRed
            }
        }
    }
}

var prizes = ["0", "5", "15", "18", "10", "20", "3", "9"]

lazy var slices: [CarnivalWheelSlice] = {
    let slices = prizes.map({CarnivalWheelSlice.init(title: $0) })
    return slices
}()

var finishIndex: Int {
    return Int.random(in: 0..<spinningWheel.slices.count)
}

//// Usage let _finishIndex = self.finishIndex spinningWheel.startAnimating() self.spinningWheel.startAnimating(fininshIndex: _finishIndex) { (finished) in print(self.prizes[_finishIndex]) }

EfraimB commented 2 years ago

The finish state is predefinied and sent asa a parameter to startAnimating.