Lottie 애니메이션을 TableViewCell 내에서 움직여 보았습니다.
9522 단어 iOSAdventCalendarSwiftLottie
소개
・ Swift 애호회 AdventCalendar 2017 의 9일째의 기사입니다.
Airbnb가 개발한 애니메이션 라이브러리의 Lottie 라는 취지입니다.
· 이번에 사용해 본 것은 여기
개발 환경
・Xcode ver9.1
・Swift ver4.0.2
· lottie-ios ver2.1.0
만든 녀석
※ 일과 미터 에 예의 실장중이기 때문에 아직 공개할 수 있는 소스는 없습니다 🙇
이번 달 동안 github에게 줄거야. 🙇 🙇
→ 올렸습니다! htps : // 기주 b. 코 m/와 ny1224/ぉ치에아니 마치 온사 mp
처리 발췌
HogeCell.swift
var anim = LOTAnimationView!
// 既存のチェックボックス部品
@IBOutlet private weak var checkbox: UIImageView!
override func awakeFromNib() {
super.awakeFromNib()
anim = LOTAnimationView(name: check_done)
/**
* サイズ設定事情
* lottieファイルのサイズがでかかったため、既存の部品(checkbox)にねじ込んでます(暫定対応)
*/
anim.frame = CGRect(x: 0, y: 0, width: 120, height: 120)
anim.contentMode = .scaleAspectFit
anim.center = checkbox.center
checkbox.addSubview(anim)
}
// 表示処理(cellForRowで呼ばれる)
func setData(fuga: Fuga) {
titleLabel.text = data.title
if fuga.isDone {
// チェック済の場合、progress値を最大値にしてアニメーション後を表現
anim.animationProgress = 1.0
} else{
// 未チェックの場合、明示的にアニメーションを停止状態にする
anim.stop()
}
}
}
func animateCheckbox() {
self.anim.play()
}
func stopAnimCheckbox() {
self.anim.stop()
}
ViewController.swift
// 各セルに表示したいデータのリスト
private var todoList = [Todo]()
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let currentTodo = self.todoList[indexPath.row]
let title = currentTodo.title
let isDone = !currentTodo.isDone
let newTodo = Todo(title: title, isDone: isDone, index: indexPath.row)
// 対象のCellを取得しAnim実行
let cell: LottieSampleCell = self.tableView.cellForRow(at: indexPath) as! LottieSampleCell
if isDone {
cell.animateCheckbox()
} else {
cell.stopAnimCheckbox()
}
self.todoList.remove(at: indexPath.row)
self.todoList.insert(newTodo, at: indexPath.row)
}
마지막으로
・올해는 여름에 주최된 해변에서도 쿠모쿠 in 지가사키 에 방해 받았습니다.
・태풍을 유혹하지 않는 애호회 파워, 모쿠모쿠 모임 사이에 만들어 주신 요리의 맛, 카레로 건배는 가능하다는 것을 알 수 있었습니다.
・또 내년에도 애호회 이벤트에 참가할 수 있도록 PM을 속 정도로 언제나 움직일 준비를 하고 싶습니다.
· 메리 크리스마스 🎄🎅 & 좋은 해를 🌄🎍
Reference
이 문제에 관하여(Lottie 애니메이션을 TableViewCell 내에서 움직여 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kamui_project/items/cd5010ebc74967edb71d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)