2017-01-23 5 views
2

사용자가 맨 위로 스크롤 할 때 UITableView의 높이를 높이고 사용자가 아래로 스크롤 할 때 높이를 낮추고 싶습니다. 나는스크롤을 기반으로 UITableview의 높이를 동적으로 늘리는 방법

if scrollView == tableView { 
    print(scrollView.contentOffset.y) 
    let height: CGFloat = scrollView.contentOffset.y+200 
    let maxHeight: CGFloat = self.view.bounds.size.height - 64 
    let minHeight:CGFloat = 200 
    if height < maxHeight && height > minHeight { 
     UIView.animateWithDuration(0.25, animations: {() -> Void in 
      self.tblHeightCons.constant = height 
      self.view.setNeedsUpdateConstraints() 
      }) 
     } 

} 

https://drive.google.com/file/d/0B9WA3RAMmfrKQlBVOG9NaEllRTQ/view

하지만 난이 내용을 이동하지 않으려는 ..

답변

0

내가 이것을 달성하는 방법을 다음 사용한 가장 좋은 방법 설정이 코드에 의해이 상황을했을 당신의 동적 높이를 tableview로 설정하고 tableView:numberOfRowsInSection: 메서드에서 scrollview에 대한 contentSize를 설정합니다.

_commentsTable.frame = CGRectMake(self.commentsTable.frame.origin.x, self.commentsTable.frame.origin.y, self.commentsTable.frame.size.width,cellDynamicHeight*_commentArray.count) ; 
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width, self.scrollView.frame.size.height+kConstantHeight); 
+0

업로드 된 비디오를 시청하십시오. –

+1

@SalmanGhumsani [link] (https://drive.google.com/file/d/0B2anHjlVQmm_aDExLUhXYllXVEk/view?usp=sharing)와 같은 것을하고 싶다면 parallaxheader (https://www.cocoacontrols.com/)를 사용하십시오. controls/vgparallaxheader) –

2

업데이트 됨. 그것은 비디오와 같은 효과를 구현하고, 범위 내에서 스크롤 할 때 컨텐트 이동을 비활성화하고, 범위를 벗어나 스크롤 할 때 컨텐트가 이동하도록합니다. 빠른 스크롤 문제도 수정되었습니다.

public func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    let maxHeight: CGFloat = self.view.bounds.size.height - 64 
    let minHeight:CGFloat = 200 
    var height = self.tblHeightCons.constant + scrollView.contentOffset.y 

    if height > maxHeight { 
     height = maxHeight 
    } 
    else if height < minHeight { 
     height = minHeight 
    } 
    else{ 
     scrollView.contentOffset = CGPoint(x: 0, y: 0) 
    } 

    self.tblHeightCons.constant = height 
} 
+0

우리가 빨리 스크롤 할 때 맨 위로 손을 내밀 지 못했습니다. –

+0

@SalmanGhumsani, 코드가 "reach out"문제를 해결하도록 업데이트되었습니다. 다시 시도하십시오. –

0

이렇게하면 테이블 뷰 높이에 따라 자동으로 스크롤보기와 테이블 뷰가 처리됩니다.

@IBOutlet weak var heightConstraint: NSLayoutConstraint!// tableView height constraint 
    func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { 
       self.heightConstraint.constant = tableView.contentSize.height 
      } 
관련 문제