๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
iOS

[iOS] ์Šคํฌ๋กค ์‹œ ํšŒ์ƒ‰์„  ๋‚˜ํƒ€๋‚˜๊ฒŒ ํ•˜๊ธฐ

by lizzydev 2023. 2. 2.

CollectionView๊ฐ€ ์Šคํฌ๋กค ๋˜๋Š”์ง€ ํŒŒ์•… ํ•ด์„œ ํŠน์ • ๋ทฐ๋ฅผ ๋„์šฐ๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค!

์ € ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ํ•˜๋‹จ ์Šคํฌ๋กค์‹œ์— ๊ณ ์ •๋˜์–ด์žˆ๋Š” ์ƒ๋‹จ ๋กœ๊ณ ๋ทฐ์™€ ์Šคํฌ๋กค ๋˜๋Š” ์˜์—ญ ์‚ฌ์ด์˜ ํšŒ์ƒ‰์„ ์ด ๋‚˜ํƒ€๋‚˜๋„๋ก ํ•˜๋Š” ํ•˜๋‹จ๊ณผ ๊ฐ™์€ ๋ทฐ๋ฅผ ๊ตฌํ˜„ํ–ˆ์–ด์•ผํ–ˆ๋Š”๋ฐ์š”!

 

์ฒ˜์Œ์— ํŒฌ์ œ์Šค์ฒ˜๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ธ๊ฐ€ ๊ณ ๋ฏผํ–ˆ์ง€๋งŒ ์ •๋ง ์ƒ๊ฐ๋ณด๋‹ค ์‰ฌ์šด ์ž‘์—…์ด์—ˆ์Šต๋‹ˆ๋‹ค.

 

1. CollectionvView๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ViewController๊ฐ€ UIScrollViewDelegate๋ฅผ ์ฑ„ํƒ ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

extension MainViewController: UIScrollViewDelegate{
 
}

2. scrollViewDidScroll ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด์ค๋‹ˆ๋‹ค.

์Šคํฌ๋กค์‹œ์— ๋‚ด๋ถ€์ ์œผ๋กœ ํ˜ธ์ถœ ๋˜๋Š” ํ•จ์ˆ˜์ธ

func scrollViewDidScroll(_ scrollView: UIScrollView)

๋ฅผ ํ•˜๋‹จ ์ฒ˜๋Ÿผ ๊ตฌํ˜„ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค!

extension MainViewController: UIScrollViewDelegate{
  func scrollViewDidScroll(_ scrollView: UIScrollView) {
    if scrollView.contentOffset.y > 0{
      grayLine.isHidden = false
    }else{
      grayLine.isHidden = true 
    }
  }
}

์Šคํฌ๋กค๋ทฐ์˜ contentOffset์€ ์Šคํฌ๋กค์ด ์‹œ์ž‘ ๋˜๋ฉด

vertical ์Šคํฌ๋กค ์ผ๊ฒฝ์šฐ scrollView.contentOffset.y ๊ฐ’์ด,

horizontal ์Šคํฌ๋กค ์ผ ๊ฒฝ์šฐ scrollView.contentOffset.x์˜ ๊ฐ’์ด 0์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ์ ์  ์ปค์ง€๋Š”๋ฐ์š”

์ œ๊ฐ€ ์Šคํฌ๋กคํ•  ๋ทฐ๋Š” vertical scrollview์ด๊ธฐ ๋•Œ๋ฌธ์— scrollView.contentOffset.y๊ฐ€ 0๋ณด๋‹ค ํฐ ์ƒํƒœ์ธ์ง€ ์•„๋‹Œ์ง€ ์— ํšŒ์ƒ‰์„ ์ด ๋ณด์ด๋„๋ก isHidden ๊ฐ’์ด ๋ณ€๊ฒฝ ๋˜๋„๋ก ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค~~

์ด์™ธ์—๋„ UIScrollView์˜ ๋‹ค์–‘ํ•œ delegate๋“ค์„ ์ ์ ˆํžˆ ์ฑ„ํƒํ•ด์„œ ์ž˜ ํ™œ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค~