사용자 정의 전환 애니메이션
4139 단어 UITableViewXcodeSwiftiOS
전제 조건
환경
- Xcode 7.2.1 (7C1002)
언어
- Swift2.1
Table View 셀에서 애니메이션 설정하기
일단 영상 샘플.
Gif라면 약간 못생겼을 수도 있으니 영상의 왼쪽 아래 구석을 주의하세요(왼쪽에서 미끄러져 들어가기)
호출 방법
tableView
방법의 willDisplayCell
을 호출하여 셀에 애니메이션을 설정합니다.
swiftfunc tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
//ここにアニメーションを実装
}
예제 코드
앞으로 샘플을 늘리는 방침
페이드 인
swiftfunc tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
cell.alpha = 0.2
UIView.animateWithDuration(1.0) { () -> Void in
cell.alpha = 1.0
}
}
측면에서 들어가다
swiftfunc tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
let slideInTransform = CATransform3DTranslate(CATransform3DIdentity, -510, 15, 0)
cell.layer.transform = slideInTransform
UIView.animateWithDuration(0.7) { () -> Void in
cell.layer.transform = CATransform3DIdentity
}
}
전체적으로 보면 코드.
먼저 다음 절차에 따라 Xcode Project를 만듭니다.
1. "cmd+shift+1"(Welcome to Xcode)에서 Single ViewApplication 프로젝트 만들기
2. Main.스토리보드에 Table View 객체 배치
3.@IBOutlet weak var animationTableView: UITableView!
tableview와tableview를 연결
4. viewDidLoad()
에서 Table View의 Delegate 및 dataSource를 self로 설정
5. 다음 코드의 필수 필드를 참조하십시오.
viewController.Swiftimport UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var animationTableView: UITableView!
var dataArray = [String]()
override func viewWillAppear(animated: Bool) {
for i in 1...100 {
dataArray.append("cell \(i)")
}
print(dataArray)
}
override func viewDidLoad() {
super.viewDidLoad()
animationTableView.delegate = self
animationTableView.dataSource = self
}
// 必須
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
// 必須
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dataArray.count
}
// 必須
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "Cell")
cell.textLabel?.text = dataArray[indexPath.row]
return cell
}
// セルのアニメーション
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
let slideInTransform = CATransform3DTranslate(CATransform3DIdentity, -500, 15, 0)
cell.layer.transform = slideInTransform
UIView.animateWithDuration(0.3) { () -> Void in
cell.layer.transform = CATransform3DIdentity
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
보충하여 기록하다
애니메이션에서 사용자의 입력 이벤트 등을 진행할 때 animateWithDuration
에서 옵션을 AllowUserInteraction
로 지정합니다.
swiftUIView.animateWithDuration(0.7, delay: 0, options: UIViewAnimationOptions.AllowUserInteraction, animations: { () -> Void in
// アニメーションを実装
// cell.layer.transform = CATransform3DIdentity
}, completion: nil)
noppefoxwolf 시정해 주셔서 감사합니다.
GitHub
일단 영상 샘플.
Gif라면 약간 못생겼을 수도 있으니 영상의 왼쪽 아래 구석을 주의하세요(왼쪽에서 미끄러져 들어가기)
호출 방법
tableView
방법의 willDisplayCell
을 호출하여 셀에 애니메이션을 설정합니다.swift
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
//ここにアニメーションを実装
}
예제 코드
앞으로 샘플을 늘리는 방침
페이드 인
swiftfunc tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
cell.alpha = 0.2
UIView.animateWithDuration(1.0) { () -> Void in
cell.alpha = 1.0
}
}
측면에서 들어가다
swiftfunc tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
let slideInTransform = CATransform3DTranslate(CATransform3DIdentity, -510, 15, 0)
cell.layer.transform = slideInTransform
UIView.animateWithDuration(0.7) { () -> Void in
cell.layer.transform = CATransform3DIdentity
}
}
전체적으로 보면 코드.
먼저 다음 절차에 따라 Xcode Project를 만듭니다.
1. "cmd+shift+1"(Welcome to Xcode)에서 Single ViewApplication 프로젝트 만들기
2. Main.스토리보드에 Table View 객체 배치
3.@IBOutlet weak var animationTableView: UITableView!
tableview와tableview를 연결
4. viewDidLoad()
에서 Table View의 Delegate 및 dataSource를 self로 설정
5. 다음 코드의 필수 필드를 참조하십시오.
viewController.Swiftimport UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var animationTableView: UITableView!
var dataArray = [String]()
override func viewWillAppear(animated: Bool) {
for i in 1...100 {
dataArray.append("cell \(i)")
}
print(dataArray)
}
override func viewDidLoad() {
super.viewDidLoad()
animationTableView.delegate = self
animationTableView.dataSource = self
}
// 必須
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
// 必須
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dataArray.count
}
// 必須
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "Cell")
cell.textLabel?.text = dataArray[indexPath.row]
return cell
}
// セルのアニメーション
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
let slideInTransform = CATransform3DTranslate(CATransform3DIdentity, -500, 15, 0)
cell.layer.transform = slideInTransform
UIView.animateWithDuration(0.3) { () -> Void in
cell.layer.transform = CATransform3DIdentity
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
보충하여 기록하다
애니메이션에서 사용자의 입력 이벤트 등을 진행할 때 animateWithDuration
에서 옵션을 AllowUserInteraction
로 지정합니다.
swiftUIView.animateWithDuration(0.7, delay: 0, options: UIViewAnimationOptions.AllowUserInteraction, animations: { () -> Void in
// アニメーションを実装
// cell.layer.transform = CATransform3DIdentity
}, completion: nil)
noppefoxwolf 시정해 주셔서 감사합니다.
GitHub
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
cell.alpha = 0.2
UIView.animateWithDuration(1.0) { () -> Void in
cell.alpha = 1.0
}
}
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
let slideInTransform = CATransform3DTranslate(CATransform3DIdentity, -510, 15, 0)
cell.layer.transform = slideInTransform
UIView.animateWithDuration(0.7) { () -> Void in
cell.layer.transform = CATransform3DIdentity
}
}
먼저 다음 절차에 따라 Xcode Project를 만듭니다.
1. "cmd+shift+1"(Welcome to Xcode)에서 Single ViewApplication 프로젝트 만들기
2. Main.스토리보드에 Table View 객체 배치
3.
@IBOutlet weak var animationTableView: UITableView!
tableview와tableview를 연결4.
viewDidLoad()
에서 Table View의 Delegate 및 dataSource를 self로 설정5. 다음 코드의 필수 필드를 참조하십시오.
viewController.Swift
import UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var animationTableView: UITableView!
var dataArray = [String]()
override func viewWillAppear(animated: Bool) {
for i in 1...100 {
dataArray.append("cell \(i)")
}
print(dataArray)
}
override func viewDidLoad() {
super.viewDidLoad()
animationTableView.delegate = self
animationTableView.dataSource = self
}
// 必須
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
// 必須
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return dataArray.count
}
// 必須
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "Cell")
cell.textLabel?.text = dataArray[indexPath.row]
return cell
}
// セルのアニメーション
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
let slideInTransform = CATransform3DTranslate(CATransform3DIdentity, -500, 15, 0)
cell.layer.transform = slideInTransform
UIView.animateWithDuration(0.3) { () -> Void in
cell.layer.transform = CATransform3DIdentity
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
보충하여 기록하다
애니메이션에서 사용자의 입력 이벤트 등을 진행할 때
animateWithDuration
에서 옵션을 AllowUserInteraction
로 지정합니다.swift
UIView.animateWithDuration(0.7, delay: 0, options: UIViewAnimationOptions.AllowUserInteraction, animations: { () -> Void in
// アニメーションを実装
// cell.layer.transform = CATransform3DIdentity
}, completion: nil)
noppefoxwolf 시정해 주셔서 감사합니다.GitHub
Reference
이 문제에 관하여(사용자 정의 전환 애니메이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TouMotonori/items/86f9fa548ae5e5610f9f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)