TableView를 스크롤하면 사라지는 그림자 구현 (멈추면 다시 표시)

4959 단어 UITableViewSwift

TableView에 그림자 표시




  • tableView를 스크롤하면 그림자가 숨겨지고 스크롤을 중지하면 그림자가 표시됩니다.
  • tableView를 누르는 것처럼 움직입니다.

    코드


  • tableView.layer.masksToBoundsfalse 로 설정합시다.
  • 그림자 관계 설정은 자유롭게

  • ViewController
            self.tableView.layer.cornerRadius = 20.0
            self.tableView.layer.shadowOffset = CGSize(width: 10, height: 10) //widthは右側に、heightは下側に影が表示される範囲
            self.tableView.layer.shadowOpacity = 0.5 //影の透明度を設定
            self.tableView.layer.shadowRadius = 7  //影のぼかし具合を設定->設定値が大きい程ぼかしも強くなります
            self.tableView.layer.masksToBounds = false //trueだと影が表示されない
    
  • 그림자는 이것으로 표시되지만, tableView를 스크롤하면 위의 캘린더에 셀이 덮여 있습니다.


  • 그래서 tableView의 스크롤을 감지합니다.
  • tableView를 스크롤할 때는 tableView.layer.masksToBoundstrue 로 한다.
  • tableView의 스크롤이 끝났을 때, tableView.layer.masksToBoundsfalse 로 한다.

  • ViewController
    extension ViewController:UITableViewDelegate,UITableViewDataSource{
    
        func scrollViewWillBeginDragging(_ scrollView: UIScrollView) { //スクロールが始まった時に呼ばれます
    
            self.tableView.layer.masksToBounds = true
    
        }
    
        func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { //スクロールが終わった時に呼ばれます
    
            self.tableView.layer.masksToBounds = false
    
        }
    }
    


  • 이것으로 cell이 캘린더에 쓰이는 일도 없어지고, tableView.layer.masksToBounds = true 가 불려 그림자도 사라지므로, tableView가 눌러지고 있는 것처럼 보입니다.
  • 그런데, tableView.layer.masksToBounds 란 무엇인가라고 하면, CALayer 클래스가 가지고 있는 프로퍼티입니다.
  • tableView는 tableView.layer.masksToBounds의 초기 값이 true입니다. 그래서 평소 tableView를 사용하고 있어도 셀이 tableView에서 튀어 나오는 것 같은 표시가되지 않습니다. 그러므로, 초기치의 아직도 그림자도 표시되지 않는 것 같습니다.



  • 오늘은 식품이나 의약품 등의 기한을 체크를 해주는 앱을 만들 때 일어난 일을 썼습니다.
    지적 등이 있으면 코멘트까지, 받을 수 있으면 기쁩니다
    오늘도 충실했습니다.

    좋은 웹페이지 즐겨찾기