[Swift/ライブラリ]スモッグ


Cosmosは簡単に採点できるSwift Open Source Libraryです.https://github.com/evgenyneu/Cosmos
Cosmosライブラリを使用せずに直接採点ビューを実装する場合は、UI StackViewに5つのUI Buttonを追加してButton操作を実現する必要があります.ボタンがクリックされると、tagを使用して各ボタンの画像を制御します.

数行で実現できるのがコスモスライブラリです.

インストール


Carthage、CocoaPods、Swift Package Managerでインストールできます.

Carthage

github "evgenyneu/Cosmos" ~> 23.0

CocoaPods

use_frameworks!
target 'Your target name'
pod 'Cosmos', '~> 23.0'

Swift Package Manager


https://github.com/evgenyneu/Cosmos
UptoNext Major Versionのバージョンを変更しないと、直接インストールでエラーが発生する可能性があります.起動バージョンを最新バージョンに変更すると、正しくインストールされます.

使用


Comosを使うにはUIViewが必要です.UIViewを追加し、クラスをComosViewに設定します.


シーケンスイメージボードのプロパティspecterで値を設定できますが、シーケンスイメージボードにComosViewが表示されない場合があります.公式文書ではRefresh All Viewsが見られると言っていますが、ここではコードを使って処理します.

ライブラリが追加され、CosViewの値を設定するIBoutlet変数が作成されました.
import Cosmos	// 라이브러리 추가
import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var cosmosView: CosmosView!	// cosmosView 연결
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
}
デフォルト設定は次のとおりです.
// 평점
cosmosView.rating = 4

// 같이 보여줄 텍스트
cosmosView.text = "(123)"

// 터치 후 손가락을 떼면 호출 (데이터베이스나 서버에 평점 저장 시 유용)
cosmosView.didFinishTouchingCosmos = { rating in }

// 터치하면 호출 (터치하여 평점 변경 시 유용)
cosmosView.didTouchCosmos = { rating in }

カスタマイズも可能です.
// 터치 시 평점 변경 불가 (평점 입력 없이 별만 표시할 경우 사용)
cosmosView.settings.updateOnTouch = false

// 별 채우기 모드
// full(완전히), half(반 씩), precise(클릭한 곳까지; 소수점 둘 째 자리까지 컨트롤)
cosmosView.settings.fillMode = .precise

// 별 크기
cosmosView.settings.starSize = 30

// 별 간격
cosmosView.settings.starMargin = 5

// 채워졌을 때 색상
cosmosView.settings.filledColor = UIColor.orange

// 비었을 때 선 색상
cosmosView.settings.emptyBorderColor = UIColor.orange

// 채워졌을 때 선 색상
cosmosView.settings.filledBorderColor = UIColor.orange

星のイメージを変えることができます.
// 채워졌을 때 이미지
cosmosView.settings.filledImage = UIImage(systemName: "heart.fill")

// 비었을 때 이미지
cosmosView.settings.emptyImage = UIImage(systemName: "heart")

画像自体を変更するため、カラー設定(filledColor、emptyBorderColor、filledBorderColor)は適用されません.ピンクのHeartに変えたいなら、いっそピンクの画像を入れましょう.


他の採点ビューライブラリを検索している場合は、次のリンクに移動します.
https://github.com/vsouza/awesome-ios#rating-stars
リファレンス
https://github.com/evgenyneu/Cosmos