Swift 3のUIScrollViewでカルーセルUI(ページング/画像などをスワイプで行き来できるView)をつくる
カルーセルUIを実装しようとしてUICollectionViewでやろうとしたりiCarouselがいいかなーと悩んだりしたのですが、UIScrollViewを用いた方法がとても平易で分かりやすかったのでSwift 3版載せさせていただきます。
出典はこちら↓
[XCODE] UIScrollViewを用いてページングUIを実現する方法 / YoheiM.NET
http://www.yoheim.net/blog.php?q=20120715
Storyboard
必ず Paging Enabled
にチェック を入れます。
Code
ViewController.swift
let size = CGSize(width: scrollView.frame.size.width, height: 200)
let contentRect = CGRect(x: 0, y: 0, width: size.width * 4, height: size.height)
let contentView = UIView(frame: contentRect)
let subContentView = UIView(frame: CGRect(x: 0, y: 0, width: size.width, height: size.height))
subContentView.backgroundColor = .green
contentView.addSubview(subContentView)
let secondContentView = UIView(frame: CGRect(x: size.width, y: 0, width: size.width, height: size.height))
secondContentView.backgroundColor = .blue
contentView.addSubview(secondContentView)
let thirdContentView = UIView(frame: CGRect(x: size.width * 2, y: 0, width: size.width, height: size.height))
thirdContentView.backgroundColor = .red
contentView.addSubview(thirdContentView)
let fourthContentView = UIView(frame: CGRect(x: size.width * 3, y: 0, width: size.width, height: size.height))
fourthContentView.backgroundColor = .yellow
contentView.addSubview(fourthContentView)
scrollView.addSubview(contentView)
scrollView.contentSize = contentView.frame.size
scrollView.contentOffset = CGPoint(x: size.width, y: 0)
Result
ViewController.swift
let size = CGSize(width: scrollView.frame.size.width, height: 200)
let contentRect = CGRect(x: 0, y: 0, width: size.width * 4, height: size.height)
let contentView = UIView(frame: contentRect)
let subContentView = UIView(frame: CGRect(x: 0, y: 0, width: size.width, height: size.height))
subContentView.backgroundColor = .green
contentView.addSubview(subContentView)
let secondContentView = UIView(frame: CGRect(x: size.width, y: 0, width: size.width, height: size.height))
secondContentView.backgroundColor = .blue
contentView.addSubview(secondContentView)
let thirdContentView = UIView(frame: CGRect(x: size.width * 2, y: 0, width: size.width, height: size.height))
thirdContentView.backgroundColor = .red
contentView.addSubview(thirdContentView)
let fourthContentView = UIView(frame: CGRect(x: size.width * 3, y: 0, width: size.width, height: size.height))
fourthContentView.backgroundColor = .yellow
contentView.addSubview(fourthContentView)
scrollView.addSubview(contentView)
scrollView.contentSize = contentView.frame.size
scrollView.contentOffset = CGPoint(x: size.width, y: 0)
DEAL WITH IT!
コード置いときます。
https://github.com/keisei1092/CarouselByUIScrollViewPractice
Author And Source
この問題について(Swift 3のUIScrollViewでカルーセルUI(ページング/画像などをスワイプで行き来できるView)をつくる), 我々は、より多くの情報をここで見つけました https://qiita.com/keisei_1092/items/ee120518d3bf500e86cb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .