๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
๋ฌธ์
ํ์ด์ง ์ปจํธ๋กค์ ์ด์ฉํด ์ฌ๋ฌ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ํ๋ฉด์ ์ถ๋ ฅํ๋ผ. ์ด๋ฏธ์ง ์ค๋ฅธ์ชฝ ์๋จ์ ํ์ด์ง ๋ฒํธ๋ ํจ๊ป ์ถ๋ ฅํ๋ผ. ํ์ด์ง ๋ฒํธ๋ 1๋ถํฐ ์์ํ๋ค.
๊ตฌํ ์์
- ๋ ์ด์์ ๊ตฌ์ฑ
- ์์ธ๋ ๋ณ์์ ์ก์ ํจ์ ์์ฑ
- ์ด๋ฏธ์ง ์ถ๋ ฅ์ ์ฌ์ฉํ ์ด๋ฏธ์ง ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด ์์ฑ
- ํ์ด์ง ์ปจํธ๋กค ์ก์ ํจ์ ์ฝ๋ ์์ฑ
- ์ด๊ธฐ ํ๋ฉด ์ค์
์ต์ข ๊ฒฐ๊ณผ
1. ๋ ์ด์์ ๊ตฌ์ฑ
ํ์ด์ง ์ปจํธ๋กค Page Control
UIPageControl: Shows progression through a list of pages.
ํ์ด์ง ๋ฆฌ์คํธ์ ์งํ ์ํฉ์ ๋ณด์ฌ์ค๋ค.
2. ์์ธ๋ ๋ณ์์ ์ก์ ํจ์ ์์ฑ
์์ธ๋ ๋ณ์
@IBOutlet var lblPageIndex: UILabel! //text ์์ฑ ์ฌ์ฉ
@IBOutlet var imgView: UIImageView! //image ์์ฑ ์ฌ์ฉ
@IBOutlet var pageControl: UIPageControl! //current, ์ ์ฒด ํ์ด์ง ์ ์ค์ , ์ ์ค์ ์์ฑ ์ฌ์ฉ
lblPageIndex : text ์์ฑ ์ฌ์ฉ
imgView : image ์์ฑ ์ฌ์ฉ
pageControl : numberOfPages, currentPage, pageIndicatorTintColor, currentPageIndicatorTintColor ์์ฑ ์ฌ์ฉ
numberOfPages | The number of pages the receiver shows (as dots). ์ ๊ณต์๊ฐ ์ถ๋ ฅํ ํ์ด์ง ์. ์ฆ, ํ์ด์ง์ปจํธ๋กค์ ์ ์ฒด ํ์ด์ง ์ |
currentPage | The current page, shown by the receiver as a white dot. ์ ๊ณต์์ํด ๋ณด์ฌ์ง๊ณ ์๋ ํ์ฌ ํ์ด์ง. ํ์ฌ ํ์ด์ง ์ธ๋ฑ์ค |
pageIndicatorTintColor | The tint color to be used for the page indicator. ํ์ด์ง ์ธ๋์ผ์ดํฐ์ ์ฌ์ฉ๋๋ ์. |
currentPageIndicatorTintColor | The tint color to be used for the current page indicator. ํ์ฌ ํ์ด์ง ์ธ๋์ผ์ดํฐ์ ์ฌ์ฉ๋๋ ์. |
์ก์ ํจ์
//Evemt - value Change : ํ์ด์ง๊ฐ ๋ณํ๋ฉด ํธ์ถ๋๋ค.
@IBAction func pageChange(_ sender: UIPageControl) {
}
pageChange : ํ์ด์ง ์ปจํธ๋กค์ ๊ฐ์ด ๋ณํ๋ฉด ํธ์ถ๋๋ค.
Event : value Changed
์ก์ ํจ์ ์์ฑ ์ ์ก์ ํจ์๋ฅผ ์ธ์ ์คํํ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ํญ๋ชฉ์ธ Event ์ข ๋ฅ๋ฅผ ์ ํํ ์ ์๋๋ฐ, value Changed์ ๊ฒฝ์ฐ ๊ฐ์ด ๋ณํ ๋ ํธ์ถ๋๋ค.
3. ์ด๋ฏธ์ง ์ถ๋ ฅ์ ์ฌ์ฉํ ์ด๋ฏธ์ง ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด ์์ฑ
์ฌ์ง์ ํด๋น ํ๋ก์ ํธ์ ์ถ๊ฐํ ํ ํด๋น ์ฌ์ง ํ์ผ๋ค์ ์ด๋ฆ์ ๊ฐ์ง๊ณ ๋ฐฐ์ด์ ์์ฑํ๋ค. ํ์ฅ์ ๋ช ๋ ํ์์ ์ผ๋ก ์์ฑํ๋ค.
import UIKit
var images = ["WallaceAndGromit_putArmsAround.jpg",
"WallaceAndGromit_playingMusic.jpg",
"WallaceAndGromit_face.png"]
class PageControlMissionViewController: UIViewController {
...
}
4. ํ์ด์ง ์ปจํธ๋กค ์ก์ ํจ์ ์ฝ๋ ์์ฑ
//Evemt - value Change : ํ์ด์ง๊ฐ ๋ณํ๋ฉด ํธ์ถ๋๋ค.
@IBAction func pageChange(_ sender: UIPageControl) {
imgView.image = UIImage(named: images[pageControl.currentPage])
lblPageIndex.text = String(pageControl.currentPage + 1)
}
ํ์ด์ง๊ฐ ๋ณํ๋ฉด ํด๋น ํ์ด์ง์ ์ด๋ฏธ์ง๋ก imgView๋ฅผ ์ค์ ํด์ฃผ์ด์ผ ํ๋ค. ๋ฐ๋ผ์ ๋ฐฐ์ด ์ด๋ฏธ์ง ์ด๋ฆ ์ค ํ์ฌ ํ์ด์ง ์ธ๋ฑ์ค์ ํด๋นํ๋ ์ด๋ฏธ์ง ์ด๋ฆ์ ๊ฐ์ ธ์ UIImage ๊ฐ์ฒด๋ก ๋ณํํ ํ ์ด๋ฏธ์ง๋ฅผ imgView์ image ์์ฑ์ ํ ๋นํ๋ค.
lblPageIndex๋ ๋ฐ๋ ํ์ด์ง ๋ฒํธ๋ก ๋ณ๊ฒฝํด ์ค๋ค. ํ์ด์ง ๋ฒํธ๊ฐ 0๋ถํฐ ์์ํ๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค ํ ๋น ์ +1 ์ ํ๋ค.
5. ์ด๊ธฐ ํ๋ฉด ์ค์
์ด๊ธฐ ํ๋ฉด์ ๋ทฐ ๋ก๋ ์ ํธ์ถ๋๋ ํจ์์ธ viewDidLoad() ํจ์์ ๊ตฌํํด์ผ ํ๋ค.
//๋ทฐ ๋ก๋ ์ ํธ์ถ๋๋ ํจ์
override func viewDidLoad() {
super.viewDidLoad()
//์์ ํ๋ฉด ์ค์
imgView.image = UIImage(named: images[0])
lblPageIndex.text = "1"
pageControl.numberOfPages = images.count
pageControl.currentPage = 0
pageControl.pageIndicatorTintColor = UIColor.gray
pageControl.currentPageIndicatorTintColor = UIColor.green
}
๋จผ์ imgView๋ ์ด๋ฏธ์ง ์ด๋ฆ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ, ์ฆ 0๋ฒ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํด image๋ฅผ ์ค์ ํ๋ค.
ํ์ฌ ํ์ด์ง ์ธ๋ฑ์ค๋ฅผ ์ถ๋ ฅํ๋ lblPageIndex์ text์๋ 1์ ํ ๋นํ๋ค.
pageControl์ numberOfPages ์์ฑ์ ์ฌ์ฉํด ์ ์ฒด ํ์ด์ง ์๋ฅผ ์ค์ ํ๋ค. ์ฌ๊ธฐ์ ์ ์ฒด ํ์ด์ง ์๋ ์ด๋ฏธ์ง ์ด๋ฆ ๋ฐฐ์ด์ count ์์ฑ์ ์ฌ์ฉํ๋ค.
๊ทธ ๋ค์ currentPage ์์ฑ์ ์ฌ์ฉํ์ฌ ํ์ฌ ํ์ด์ง์ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ์ค์ ํ๋ค.
pageIndicatorTintColor, currentPageIndicatorTintColor ์์ฑ์ ํ์ฌ ํ์ด์ง ์ปจํธ๋กค์ ์ธ๋์ผ์ดํฐ ์์ ์ค์ ํ๋ค.
๊ณต๋ถ ์๋ฃ
Do It! ์ค์ํํธ๋ก ์์ดํฐ ์ฑ ๋ง๋ค๊ธฐ ๊ฐ์ 5ํ
SWIFT ๋ฌธ์