与 iBooks 应用程序一样,当您下拉表格视图时,会出现搜索栏和分段控件,以允许您在两种类型的视图之间搜索和切换。
当您向下拉得足够远时,它会停留在该位置,或者当您将桌面视图拉得足够远时,它会被隐藏。
我正在尝试用一个来实现同样的事情UISegmentedControl
。
到目前为止,我已经成功地将分段控件作为子视图添加到表中。 (它有一个负 Y 框架,因此请将其粘贴在桌面视图上方)。
我也实现了这段代码:
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
float yOffset = scrollView.contentOffset.y;
if (yOffset < -70) {
[scrollView setContentOffset:CGPointMake(0.0f, -70.0f) animated:YES];
} else if (yOffset > -10) {
[scrollView setContentOffset:CGPointMake(0.0f, -11.0f) animated:YES];
}
}
这非常有效,直到我尝试使用分段控件。表格的行为就像滚动一样,完全忽略分段控件(即,如果我点击一个分段,它甚至不会被选中,而是表格向上滚动,隐藏分段控件。
我确实使用了scrollViewDidScroll
方法,但这使得它有问题并且滚动跳跃。
我还尝试制作分段控件exclusiveTouch = YES
,但这没有任何效果。
我将感谢所有帮助!提前致谢!
这是我的有效代码:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//
// Table view
//
if ([scrollView isKindOfClass:[myTableView class]]) {
//
// Discover top
//
CGFloat topY = scrollView.contentOffset.y + scrollView.contentInset.top;
if (topY <= self.tableHeaderHeightConstraint.constant) {
[self setIsScrolledToTop:YES];
} else {
[self setIsScrolledToTop:NO];
}
}
}
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
//
// Table view
//
if ([scrollView isKindOfClass:[myTableView class]]) {
//
// Toggle favourite category
//
if ([self isScrolledToTop]) {
//
// Show
//
} else {
//
// Hide
//
}
}
}
编辑了上面的代码,使其更加通用,但在语法上它是正确的
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)