WWScratchCard

Swift-5.6 iOS-14.0 TAG Swift Package Manager-SUCCESS LICENSE

Introduction - 简介

WWScratchCard

Installation with Swift Package Manager

dependencies: [
    .package(url: "https://github.com/William-Weng/WWScratchCard.git", .upToNextMajor(from: "1.0.0"))
]

Function - 可用函数

函数 功能
setting(delegate:couponImage:maskImage:scratchType:contentMode:) 设定图片相关设定
restart(couponImage:maskImage:contentMode:) 重新开始 (0%)
finish() 全部完成 (100%)

WWScratchCardDelegate

函数 功能
scratchBegan(point:) 开始刮
scratchMoved(progress:) 正在刮
scratchEnded(point:) 停止刮

Example

import UIKit
import WWScratchCard

final class ViewController: UIViewController {

    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var scratchCard: WWScratchCardView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        test()
    }
}

// MARK: - WWScratchCardDelegate
extension ViewController: WWScratchCardDelegate {
    
    func scratchBegan(point: CGPoint) {}
    
    func scratchMoved(progress: Float) {
        let percent = String(format: "%.1f", progress * 100)
        label.text = "\(percent)%"
    }
    
    func scratchEnded(point: CGPoint) {}
}

// MARK: - 小工具
private extension ViewController {
    
    func test() {
        
        guard let couponImage = UIImage(named: "Desktop.png"),
              let maskImage = UIImage(named: "Gray.png")
        else {
            return
        }
        
        scratchCard.setting(delegate: self, couponImage: couponImage, maskImage: maskImage, contentMode: .scaleToFill)
        
        DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
            self.scratchCard.restart(couponImage: couponImage, maskImage: maskImage, contentMode: .scaleToFill)
            self.label.text = "0.0 %"
        }
    }
}