Jimmy's iOS
iOS) Cosmos - Star Rating Library 본문
프로젝트를 하면서 별점을 주는 것을 해야했다. 별점 예시를 찾다가 cosmos 라는 라이브러리가 있어서 연습을 해봤다.
import UIKit
import Cosmos
import SnapKit
class ViewController: UIViewController {
//MARK: - Properties
lazy var cosmosView : CosmosView = {
var view = CosmosView()
view.settings.updateOnTouch = true // 클릭 가능 하게 true 가 defualt, false 이면 터치 안됨
// view.settings.filledImage = UIImage(named: "")?.withRenderingMode(.alwaysOriginal) // filledImage 설정 가능
// view.settings.emptyImage = UIImage(named: "") // emtyImage 설정 가능
view.settings.totalStars = 5
view.settings.starSize = 30// height
view.settings.starMargin = 3.3 // distance each star
view.settings.fillMode = .full // precise 는 완전 소수점 까지
view.text = "Rate me"
view.settings.textColor = .gray
// view.settings.textFont
view.settings.textMargin = 10 // distance between star
return view
}()
//MARK: - Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
setUI()
}
//MARK: - Functions
private func setUI() {
view.backgroundColor = .white
view.addSubview(cosmosView)
cosmosView.snp.makeConstraints {
$0.center.equalToSuperview()
}
cosmosView.didTouchCosmos = { rating in
print("Rated : \(rating)")
}
}
}
- settings.updateOnTouch : default 값은 true, false 를 주면 touch 안됨
- settings.filledImage : 색이 칠해진 이미지를 넣을 수 있다.
- settings.emtyImage : 빈 이미지를 넣을 수 있다.
- settings.totalStars : 총 별 갯수
- settings.starSize : 별점 크기
- settings.starMargin : 각각 별점 사이 margin
- settings.fillMode : 별점 보여지는 방법
- full : 완전 한개씩
- half : 0.5
- precise : 터치 한 곳까지 정밀하게 소수점으로
- text : 별점 옆에 글 생성 가능
- settings.textColor
- settings.textMargin
evgenyneu/Cosmos
A star rating control for iOS/tvOS written in Swift - evgenyneu/Cosmos
github.com
'iOS' 카테고리의 다른 글
iOS) Confetti Animation Effect (0) | 2021.06.08 |
---|---|
iOS) AlertController 에 textField 넣기 (0) | 2021.06.04 |
iOS) UITableView 동적 셀 높이 잡기 (0) | 2021.05.23 |
iOS) String 타입의 값을 원하는 곳까지 (0) | 2021.05.01 |
iOS) 이미지 리사이징(resize) 해서 처리하기 (0) | 2021.04.30 |