Swift: 이미지 표시 두 번 클릭♡
16374 단어 SwiftInstagramUITableViewiOSXcode
전제 조건
환경
- Xcode7.2.1
언어
- Swift2.1
이번에는 Xcode 프로젝트의 시작부터 Step by Step에서 설명합니다.
실제로 단계 4 정도부터 더블 클릭 기능을 설치합니다.
샘플 코드가 GitHub에게 주어졌기 때문에끝까지
Step1: 오리지널 작품 보기
언제 눌렸는지 몰라서 좀 못생겼나봐요.
마지막으로 최종 품목 GIF!!
구조로 삼다
그림을 두 번 연속 클릭할 때 좋은 동작을 넣는다(이번에는 애니메이션에 관한 것이다)
(다른 동작, 서버와의 대화는 이번에 처리하지 않음)
그나저나 가능하면 인스타그램을 팔로우하세요.
Step2: 프로젝트 준비
제작의 흐름은 이런 느낌이다.
1. Single View 응용 프로그램 만들기
2. StoryBoard에 tableView 추가
3. IBOutlet에서 tableView 및 ViewController 연결
4. 다양한 tableView 설정
ViewController.swiftimport UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableview: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
self.tableview.delegate = self
self.tableview.dataSource = self
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// 後ほどCustomCell.swiftでクラスを作成する
let cell = tableView.dequeueReusableCellWithIdentifier("CustomCell") as? CustomCell
return cell!
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Step3: 사용자 정의 셀을 만드는 Xib
언제 눌렸는지 몰라서 좀 못생겼나봐요.
마지막으로 최종 품목 GIF!!
구조로 삼다
그림을 두 번 연속 클릭할 때 좋은 동작을 넣는다(이번에는 애니메이션에 관한 것이다)
(다른 동작, 서버와의 대화는 이번에 처리하지 않음)
그나저나 가능하면 인스타그램을 팔로우하세요.
Step2: 프로젝트 준비
제작의 흐름은 이런 느낌이다.
1. Single View 응용 프로그램 만들기
2. StoryBoard에 tableView 추가
3. IBOutlet에서 tableView 및 ViewController 연결
4. 다양한 tableView 설정
ViewController.swiftimport UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableview: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
self.tableview.delegate = self
self.tableview.dataSource = self
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// 後ほどCustomCell.swiftでクラスを作成する
let cell = tableView.dequeueReusableCellWithIdentifier("CustomCell") as? CustomCell
return cell!
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Step3: 사용자 정의 셀을 만드는 Xib
import UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableview: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
self.tableview.delegate = self
self.tableview.dataSource = self
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// 後ほどCustomCell.swiftでクラスを作成する
let cell = tableView.dequeueReusableCellWithIdentifier("CustomCell") as? CustomCell
return cell!
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
hidden = true
지금까지 CustomCell.swift
CustomCell.swift
import UIKit
class CustomCell: UITableViewCell {
@IBOutlet weak var bigImage: UIImageView!
@IBOutlet weak var likeImage: UIImageView!
override func awakeFromNib() {
self.likeImage?.hidden = true
super.awakeFromNib()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
override func viewDidLoad() {
super.viewDidLoad()
self.sharesTableView.delegate = self
self.sharesTableView.dataSource = self
// Reading xib class
let nib: UINib = UINib(nibName: "CustomCell", bundle: nil)
self.sharesTableView.registerNib(nib, forCellReuseIdentifier: "CustomCell")
self.sharesTableView.estimatedRowHeight = 320.0
self.sharesTableView.rowHeight = UITableViewAutomaticDimension
}
Step4: 제스처 인식
import UIKit
class CustomCell: UITableViewCell {
@IBOutlet weak var bigImage: UIImageView!
@IBOutlet weak var likeImage: UIImageView!
@IBOutlet weak var likeLable: UILabel!
var didDoubleTap: Bool = false
override func awakeFromNib() {
let doubleTapGesture = UITapGestureRecognizer(target: self, action: "onDoubleTap:")
doubleTapGesture.numberOfTapsRequired = 2
self.bigImage.userInteractionEnabled = true
self.bigImage.addGestureRecognizer(doubleTapGesture)
self.likeImage?.hidden = true
super.awakeFromNib()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}
Step5: 애니메이션 열기
CustomCell.swift에 다음 애니메이션 기능 추가
(이번에는 간단한 애니메이션을 구현할 것입니다. -->> 표시 및 페이드아웃)
CustomCell.swift // onDoubleTapはUITapGestureRecognizerのactionと一致
func onDoubleTap(sender: UITapGestureRecognizer) {
didDoubleTap = true
print("Double Tapped")
// ここで好きなアニメーションを実装できる
self.likeImage?.hidden = false
self.likeImage?.alpha = 1.0
UIView.animateWithDuration(0.5, delay: 0.4, options: UIViewAnimationOptions.CurveEaseIn, animations: {
self.likeImage?.alpha = 0
}, completion: {
(value:Bool) in
self.likeImage?.hidden = true
})
}
완제품을 보다
GitHub
doubleTapLikeAnimation
UITableView 관련 기사
사용자 정의 전환 애니메이션
Reference
이 문제에 관하여(Swift: 이미지 표시 두 번 클릭♡), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TouMotonori/items/b17b26527355e3020699
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// onDoubleTapはUITapGestureRecognizerのactionと一致
func onDoubleTap(sender: UITapGestureRecognizer) {
didDoubleTap = true
print("Double Tapped")
// ここで好きなアニメーションを実装できる
self.likeImage?.hidden = false
self.likeImage?.alpha = 1.0
UIView.animateWithDuration(0.5, delay: 0.4, options: UIViewAnimationOptions.CurveEaseIn, animations: {
self.likeImage?.alpha = 0
}, completion: {
(value:Bool) in
self.likeImage?.hidden = true
})
}
GitHub
doubleTapLikeAnimation
UITableView 관련 기사
사용자 정의 전환 애니메이션
Reference
이 문제에 관하여(Swift: 이미지 표시 두 번 클릭♡), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TouMotonori/items/b17b26527355e3020699
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
사용자 정의 전환 애니메이션
Reference
이 문제에 관하여(Swift: 이미지 표시 두 번 클릭♡), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TouMotonori/items/b17b26527355e3020699텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)