Xcode:table 视图 header:捕捉

Xcode: table view header: snapping

我在我的 UITableViewController 中创建了一个简单的 table 视图 header:

UIView *tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.bounds.size.width, [[UIScreen mainScreen] bounds].size.height * 5 / 8)];

[tableHeaderView setBackgroundColor:[UIColor flatNavyBlueColorDark]];
[self.tableView setTableHeaderView:tableHeaderView];

现在我想创建一个 snapping/elastic 行为,这样当用户将 table header 滚动到 50% 超出主屏幕框架时,它的其余部分会自动捕捉,以便整个 header 滚动出来。如这些图片所述:

Header is fully extended

user scrolls to this point(halfway) and lets go

此时,header 自动关闭。

帮忙?

UIScrollViewDelegate 中有一个名为 scrollViewWillEndDragging:withVelocity:targetContentOffset: 的方法,它会在用户停止滚动时被调用,并让您知道它将在何处停止。

在那里你可以检查targetContentOffset.y是否在你想要的范围内,并修改它,这将导致滚动视图停止在不同的位置。