142 lines
4.5 KiB
Swift
142 lines
4.5 KiB
Swift
//
|
|
// DailyFreeCoinCheckController.swift
|
|
// Crush
|
|
//
|
|
// Created by Leon on 2025/9/9.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class DailyFreeCoinCheckController: CLBaseViewController {
|
|
var container: LTScrollContainer!
|
|
|
|
var header: DialyCheckHeaderView!
|
|
var introduction: DialyCheckIntroductionView!
|
|
var checkDaysView:DailyCheckDaysControl!
|
|
var descLabel : LineSpaceLabel!
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
|
|
// Do any additional setup after loading the view.
|
|
setupViews()
|
|
setupDatas()
|
|
setupEvents()
|
|
}
|
|
|
|
private func setupViews() {
|
|
let title = "Dialy Free Crush Coin"
|
|
navigationView.alpha0Title = title
|
|
navigationView.bgView.alpha = 0
|
|
|
|
container = {
|
|
let v = LTScrollContainer()
|
|
v.scrollView.delegate = self
|
|
v.scrollView.bounces = false
|
|
//view.addSubview(v)
|
|
v.stackEdge = UIEdgeInsets(top: 0, left: 0, bottom: 24+UIWindow.safeAreaBottom, right: 0)
|
|
view.insertSubview(v, at: 0)
|
|
v.snp.makeConstraints { make in
|
|
make.leading.trailing.equalToSuperview()
|
|
make.bottom.equalToSuperview()
|
|
make.top.equalToSuperview()
|
|
}
|
|
return v
|
|
}()
|
|
|
|
header = {
|
|
let v = DialyCheckHeaderView()
|
|
container.stack.addArrangedSubview(v)
|
|
v.snp.makeConstraints { make in
|
|
make.leading.trailing.equalToSuperview()
|
|
}
|
|
return v
|
|
}()
|
|
container.stack.setCustomSpacing(24, after: header)
|
|
|
|
introduction = {
|
|
let v = DialyCheckIntroductionView()
|
|
container.stack.addArrangedSubview(v)
|
|
v.snp.makeConstraints { make in
|
|
make.leading.trailing.equalToSuperview()
|
|
}
|
|
return v
|
|
}()
|
|
container.stack.setCustomSpacing(16, after: introduction)
|
|
|
|
checkDaysView = {
|
|
let v = DailyCheckDaysControl()
|
|
container.stack.addArrangedSubview(v)
|
|
v.snp.makeConstraints { make in
|
|
make.leading.equalToSuperview().offset(CGFloat.lrs)
|
|
make.trailing.equalToSuperview().offset(-CGFloat.lrs)
|
|
}
|
|
return v
|
|
}()
|
|
container.stack.setCustomSpacing(16, after: checkDaysView)
|
|
|
|
descLabel = {
|
|
let v = LineSpaceLabel()
|
|
v.textColor = .desc
|
|
let typo = CLSystemToken.typography(token:.tbs)
|
|
v.config(typo)
|
|
container.stack.addArrangedSubview(v)
|
|
v.snp.makeConstraints { make in
|
|
make.leading.equalToSuperview().offset(CGFloat.lrs)
|
|
make.trailing.equalToSuperview().offset(-CGFloat.lrs)
|
|
}
|
|
return v
|
|
}()
|
|
descLabel.text = "Diamonds can be used to pay for chats, as well as unlock other props.\nAfter the sign-off is discontinued, you will re-check in from the first day."
|
|
}
|
|
|
|
private func setupDatas() {
|
|
loadCheckList()
|
|
checkToday()
|
|
}
|
|
|
|
private func loadCheckList(){
|
|
DiscoverProvider.request(.days7CheckList, modelType: Day7CheckList.self) {[weak self] result in
|
|
Hud.hideIndicator()
|
|
switch result {
|
|
case .success(let model):
|
|
self?.checkDaysView.config(model)
|
|
self?.introduction.config(model)
|
|
case .failure:
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
private func checkToday(){
|
|
Hud.showIndicator()
|
|
DiscoverProvider.request(.dailyCheck, modelType: EmptyModel.self) {[weak self] result in
|
|
|
|
switch result {
|
|
case .success:
|
|
self?.loadCheckList()
|
|
Hud.toast(str: "今日已签到")
|
|
case .failure (let failure):
|
|
Hud.hideIndicator()
|
|
switch failure {
|
|
case let .serviceError(code, _):
|
|
if code == .sign_usernotLoggedIn{
|
|
// ...
|
|
self?.close()
|
|
}
|
|
default:
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private func setupEvents() {
|
|
}
|
|
}
|
|
|
|
extension DailyFreeCoinCheckController: UIScrollViewDelegate{
|
|
func scrollViewDidScroll(_ scrollView: UIScrollView) {
|
|
NaviAlphaHandle.changeNaviViewsAlpha(scrollView: scrollView, alphaViews: [navigationView.titleLabel, navigationView.bgView], oppositeViews: [])
|
|
}
|
|
}
|