iOS 8.0+ Xcode 7.2+ Swift 4.0
pod "MCScratchImageView"
Just drag MCScratchImageView.swift
to the project tree
If you use CocoaPods, first import MCScratchImageView
import MCScratchImageView
var scratchImageView: MCScratchImageView!
// init()
scratchImageView = MCScratchImageView()
// init(frame:)
scratchImageView = MCScratchImageView(frame: yourRect)
Or use StoryBoard.
// use default touch point radius
scratchImageView.setMaskImage(yourUIImage)
// use custom touch point radius
scratchImageView.setMaskImage(yourUIImage, spotRadius: 100)
// set the delegate
scratchImageView.delegate = ***
/* ... */
// implement the MCScratchImageViewDelegate method
extension YourController: MCScratchImageViewDelegate {
func mcScratchImageView(_ mcScratchImageView: MCScratchImageView, didChangeProgress progress: CGFloat) {
print("Progress did changed: " + String(format: "%.2f", progress))
if (progress >= 0.8) {
mcScratchImageView.scratchAll()
}
}
}
// current scratched progress
public var progress: CGFloat
// Determin the radius of the touch point
private(set) var spotRadius: CGFloat = 45.0
// set the mask image & radius
public func setMaskImage(_ image: UIImage)
public func setMaskImage(_ image: UIImage, spotRadius: CGFloat)
// scratch all mask fields
public func scratchAll()
In "Example" folder.
- Don't set the scratchImageView.image directlly, you need to use setMaskImage(paras) to set the mask image.
- Don't set the touch point radius (var spotRadius: CGFloat) directlly.
- The contentMode should use default resize mode.
Minecode, [email protected]
MCScratchImageView is available under the MIT license. See the LICENSE file for more info.