我想在用户滚动到顶部时增加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 :(得分: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
}
答案 1 :(得分: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);
答案 2 :(得分:0)
这将根据tableview高度自动处理scrollview和tableview。
597 2733 2710 2687
597 2710 2688 2687
597 2688 2713 2734