iOS 응용프로그램에서 흔히 볼 수 있는 튜토리얼 화면 만들기
이번에는 UICollectionView를 사용하여 튜토리얼 화면을 만듭니다.
초보자도 쉽게 이해할 수 있도록 복사 스티커로도 조작이 가능하다.
이런 녀석
개시하다
UICollectionView는
쉽게 말하면 메인 화면이야.
아이폰 8의 메인 화면
화면을 기준으로 가로 4개, 세로 6개(4)× 6) 애플리케이션이 대기 중입니다.
이번에 한 건요.
화면 대비 1개× 1) 애플리케이션입니다.
이루어지다
ViewController.swift
// ViewController.swift
import UIKit
class ViewController: UIViewController{
var tutorialCollectionView: UICollectionView!
var layout: UICollectionViewFlowLayout!
override func viewDidLoad() {
super.viewDidLoad()
let viewWidth = self.view.frame.width
let viewHeight = self.view.frame.height
let collectionViewFrame = CGRect (x: 0, y: 0, width: viewWidth, height: viewHeight)
// CollectionViewのレイアウトを生成
layout = UICollectionViewFlowLayout()
// Cell一つ一つの大きさを設定
layout.itemSize = CGSize(width: viewWidth, height: viewHeight)
// Cellの行間隔を設定
layout.minimumLineSpacing = 0
// Cellの列間隔を設定
layout.minimumInteritemSpacing = 0
// CollectionViewのスクロールの方向を横にする
layout.scrollDirection = .horizontal
// CollectionViewを生成
tutorialCollectionView = UICollectionView(frame: collectionViewFrame, collectionViewLayout: layout)
// Cellに使われるクラスを登録
tutorialCollectionView.register(CustomUICollectionViewCell.self, forCellWithReuseIdentifier: "CustomCell")
// dataSourceを自身に設定
tutorialCollectionView.dataSource = self
// ページングさせる
tutorialCollectionView.isPagingEnabled = true
// ScrollIndicatorを非表示にする
tutorialCollectionView.showsHorizontalScrollIndicator = false
// CollectionViewをViewに追加する
self.view.addSubview(tutorialCollectionView)
}
override func viewDidAppear(_ animated: Bool) {
// ViewDidLoadではSafeAreaが取得できないのでここでリサイズ
let safeArea = self.view.safeAreaInsets
let viewWidth = self.view.frame.width
let viewHeight = self.view.frame.height
let collectionViewFrame = CGRect (x: safeArea.left, y: safeArea.top, width: viewWidth - safeArea.left, height: viewHeight - safeArea.top - safeArea.bottom)
layout.itemSize = CGSize(width: viewWidth - safeArea.left, height: viewHeight - safeArea.top - safeArea.bottom)
tutorialCollectionView.frame = collectionViewFrame
}
}
extension ViewController: UICollectionViewDataSource{
// Cellの数を設定
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 5
}
// Cellに値を設定する
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell : CustomUICollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "CustomCell", for: indexPath as IndexPath) as! CustomUICollectionViewCell
// Cellに応じてbackgroundColorを変更
switch indexPath.row {
case 0:
cell.backgroundColor = UIColor.blue
case 1:
cell.backgroundColor = UIColor.orange
case 2:
cell.backgroundColor = UIColor.yellow
case 3:
cell.backgroundColor = UIColor.green
case 4:
cell.backgroundColor = UIColor.red
default:
break
}
cell.textLabel?.text = "\(indexPath.row + 1)ページ目"
return cell
}
}
CustomUICollectionViewCell.swift
// CustomUICollectionViewCell
import UIKit
class CustomUICollectionViewCell : UICollectionViewCell{
var textLabel : UILabel?
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
}
override init(frame: CGRect) {
super.init(frame: frame)
// UILabelを生成.
textLabel = UILabel(frame: CGRect(x:0, y:0, width:frame.width, height:frame.height))
textLabel?.text = "nil"
textLabel?.textAlignment = NSTextAlignment.center
// Cellに追加.
self.contentView.addSubview(textLabel!)
}
}
GiitHub에 소스 코드 제공
https://github.com/renchild8/TutorialCollectionView
Reference
이 문제에 관하여(iOS 응용프로그램에서 흔히 볼 수 있는 튜토리얼 화면 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/renchild8/items/8fd870d5bfed0f0b360b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
ViewController.swift
// ViewController.swift
import UIKit
class ViewController: UIViewController{
var tutorialCollectionView: UICollectionView!
var layout: UICollectionViewFlowLayout!
override func viewDidLoad() {
super.viewDidLoad()
let viewWidth = self.view.frame.width
let viewHeight = self.view.frame.height
let collectionViewFrame = CGRect (x: 0, y: 0, width: viewWidth, height: viewHeight)
// CollectionViewのレイアウトを生成
layout = UICollectionViewFlowLayout()
// Cell一つ一つの大きさを設定
layout.itemSize = CGSize(width: viewWidth, height: viewHeight)
// Cellの行間隔を設定
layout.minimumLineSpacing = 0
// Cellの列間隔を設定
layout.minimumInteritemSpacing = 0
// CollectionViewのスクロールの方向を横にする
layout.scrollDirection = .horizontal
// CollectionViewを生成
tutorialCollectionView = UICollectionView(frame: collectionViewFrame, collectionViewLayout: layout)
// Cellに使われるクラスを登録
tutorialCollectionView.register(CustomUICollectionViewCell.self, forCellWithReuseIdentifier: "CustomCell")
// dataSourceを自身に設定
tutorialCollectionView.dataSource = self
// ページングさせる
tutorialCollectionView.isPagingEnabled = true
// ScrollIndicatorを非表示にする
tutorialCollectionView.showsHorizontalScrollIndicator = false
// CollectionViewをViewに追加する
self.view.addSubview(tutorialCollectionView)
}
override func viewDidAppear(_ animated: Bool) {
// ViewDidLoadではSafeAreaが取得できないのでここでリサイズ
let safeArea = self.view.safeAreaInsets
let viewWidth = self.view.frame.width
let viewHeight = self.view.frame.height
let collectionViewFrame = CGRect (x: safeArea.left, y: safeArea.top, width: viewWidth - safeArea.left, height: viewHeight - safeArea.top - safeArea.bottom)
layout.itemSize = CGSize(width: viewWidth - safeArea.left, height: viewHeight - safeArea.top - safeArea.bottom)
tutorialCollectionView.frame = collectionViewFrame
}
}
extension ViewController: UICollectionViewDataSource{
// Cellの数を設定
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 5
}
// Cellに値を設定する
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell : CustomUICollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "CustomCell", for: indexPath as IndexPath) as! CustomUICollectionViewCell
// Cellに応じてbackgroundColorを変更
switch indexPath.row {
case 0:
cell.backgroundColor = UIColor.blue
case 1:
cell.backgroundColor = UIColor.orange
case 2:
cell.backgroundColor = UIColor.yellow
case 3:
cell.backgroundColor = UIColor.green
case 4:
cell.backgroundColor = UIColor.red
default:
break
}
cell.textLabel?.text = "\(indexPath.row + 1)ページ目"
return cell
}
}
CustomUICollectionViewCell.swift
// CustomUICollectionViewCell
import UIKit
class CustomUICollectionViewCell : UICollectionViewCell{
var textLabel : UILabel?
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
}
override init(frame: CGRect) {
super.init(frame: frame)
// UILabelを生成.
textLabel = UILabel(frame: CGRect(x:0, y:0, width:frame.width, height:frame.height))
textLabel?.text = "nil"
textLabel?.textAlignment = NSTextAlignment.center
// Cellに追加.
self.contentView.addSubview(textLabel!)
}
}
GiitHub에 소스 코드 제공https://github.com/renchild8/TutorialCollectionView
Reference
이 문제에 관하여(iOS 응용프로그램에서 흔히 볼 수 있는 튜토리얼 화면 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/renchild8/items/8fd870d5bfed0f0b360b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)