我有iphone app
我想要执行以下操作:
scrolling
自定义分页大小UIScrollView
,用户可以在左侧或右侧swiping
之间切换类别。 UIScrollView
(全屏宽度分页)。用户还可以通过向左或向右滑动来在内容页面之间切换。 我想要实现的目标如下:
UIScrollViews
都链接在一起,因此在类别标题栏中滑动也会刷新内容页面,或者在内容页面中滑动也会刷标题栏。我确实记得看到一些应用程序实现了这样的东西,虽然我现在不记得了。任何想法我该怎么做?
谢谢!
答案 0 :(得分:0)
我在我的应用程序中完成了它。类别视图就像一个“展示”视图,在滑动或触摸后,触发通知。内容可以是UICollectionView
,因此它有setContentOffset:
方法来“转到”目标网页。或者你可以在contentView中使用addChildViewController
,并与pagingEnabled UIScrollView
结合使用。
答案 1 :(得分:0)
参考Making two UIScrollViews follow each others scrolling,我通过将两个滚动视图的UIScrollView委托设置为父视图控制器并调用scrollViewDidScroll方法来完成它。
- (void)matchScrollView:(UIScrollView *)first toScrollView:(UIScrollView *)second {
CGPoint offset = first.contentOffset;
offset.x = (second.contentOffset.x/second.frame.size.width) * first.frame.size.width;
first.contentOffset = offset;
}
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
if([scrollView isEqual:firstScrollView]) {
isSecondScrolling = NO;
} else if ([scrollView isEqual:secondScrollView]) {
isSecondScrolling = YES;
}
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if ([scrollView isEqual:firstScrollView] && isSecondScrolling == NO) {
[self matchScrollView:secondScrollView toScrollView:firstScrollView];
} else if ([scrollView isEqual:_midPanelScrollView] && isSecondScrolling == YES) {
[self matchScrollView:firstScrollView toScrollView:secondScrollView];
}
}
但是我添加了boolean isSecondScrolling,以阻止firstScrollView在secondScrollView滚动时启动matchScrollView。否则,它会导致secondScrollView的帧在每次滚动后稍微关闭。