This commit is contained in:
DDIsFriend
2023-08-18 17:28:57 +08:00
commit f0e8a1709d
4282 changed files with 192396 additions and 0 deletions

View File

@@ -0,0 +1,69 @@
//
// EKRatingSymbolView.swift
// SwiftEntryKit
//
// Created by Daniel Huri on 6/1/18.
// Copyright (c) 2018 huri000@gmail.com. All rights reserved.
//
import UIKit
final public class EKRatingSymbolView: UIView {
private let button = UIButton()
private let imageView = UIImageView()
private let unselectedImage: EKProperty.ImageContent
private let selectedImage: EKProperty.ImageContent
var selection: EKRatingMessage.Selection
public var isSelected: Bool {
set {
imageView.imageContent = newValue ? selectedImage : unselectedImage
}
get {
return imageView.image == selectedImage.images.first
}
}
public init(unselectedImage: EKProperty.ImageContent, selectedImage: EKProperty.ImageContent, selection: @escaping EKRatingMessage.Selection) {
self.unselectedImage = unselectedImage
self.selectedImage = selectedImage
self.selection = selection
super.init(frame: .zero)
setupImageView()
setupButton()
}
required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private func setupButton() {
addSubview(button)
button.fillSuperview()
button.addTarget(self, action: #selector(touchUpInside), for: .touchUpInside)
button.addTarget(self, action: #selector(touchDown), for: [.touchDown])
button.addTarget(self, action: #selector(touchUp), for: [.touchUpInside, .touchUpOutside, .touchCancel])
}
private func setupImageView() {
addSubview(imageView)
imageView.imageContent = unselectedImage
imageView.centerInSuperview()
imageView.sizeToSuperview(withRatio: 0.7)
}
@objc func touchUpInside() {
selection(tag)
}
@objc func touchDown() {
transform = CGAffineTransform(scaleX: 1.15, y: 1.15)
}
@objc func touchUp() {
transform = CGAffineTransform(scaleX: 1, y: 1)
}
}