我的视图控制器顶部有一个页面视图控制器,底部有一个桌面视图。当我向上滚动表格视图时,我希望桌面视图框架向上滑动到屏幕顶部,并在向下滚动时返回到页面控制器视图的底部。
我只希望更改框架并滚动表视图单元格,直到它到达屏幕顶部。
video similar to what I want to achieve
在我的示例中,我尝试在scrollViewDidScroll中更改附加到表视图顶部的NSLayoutConstraint。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
//the height of the pageview controller
//the height and width of the pageview controller is the screen width.
CGFloat yPos = self.pageViewHolder.frame.size.height;
//content offset as I scroll
CGFloat offset = self.tableView.contentOffset.y;
//to place the tableview exactly below pageview controller view
if (offset < 0) {
offset = screenSize.height - screenSize.width;
}
//to place the tableview frame fixed on top of the screen
else if (offset > yPos) {
offset = screenSize.width;
}
//to slide the table view above page view by changing the NSLayoutConstraint anchored to the top of the table view and the super view.
CGFloat difference = yPos - offset;
self.tableViewTopGap.constant = difference;
[self.view layoutIfNeeded];
}
答案 0 :(得分:0)
您需要在表格视图上启用和停用滚动,直到它位于屏幕顶部。
因此,在您上面发布的代码中,您要检查if else语句中表视图的位置,您应该在那里启用和禁用滚动。
如果您不希望表格视图滚动:[tableView scrollEnabled: NO];
,然后当它点击屏幕顶部时,只需将其设置为YES