ScrollView在任何地方检测滚动

时间:2013-07-03 06:42:08

标签: iphone ios objective-c xcode uiscrollview

我有一个宽208pt,高280pt的UIScrollView,包含宽200pt,高280t,间隔8pt的自定义按钮。此滚动视图启用了分页,但不会剪切子视图,因此它总是捕捉到一个按钮居中,但显示其他屏幕上的按钮。我试图使你可以刷按钮的屏幕占据屏幕的整个宽度,我正在尝试使用UIScrollView的辅助自定义子类PagingView完成此操作,该子类只有一个UIScrollView属性并传递所有命中在它的滚动视图上。无论出于何种原因,当我尝试没有这样的分页视图时:

unsigned height = self.view.frame.size.height;
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(60, height - 308, 208, 280)];
scrollView.pagingEnabled = true;
scrollView.clipsToBounds = false;
scrollView.showsHorizontalScrollIndicator = false;
[self.view addSubview:scrollView];

它可以工作,虽然我可以与仅限于其框架的scrollview进行交互。但是,当我使用scrollview尝试它时:

unsigned height = self.view.frame.size.height;
pagingView = [[PagingView alloc] initWithFrame:CGRectMake(0, height - 308, 320, 280)];
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(60, height - 308, 208, 280)];
scrollView.pagingEnabled = true;
scrollView.clipsToBounds = false;
scrollView.showsHorizontalScrollIndicator = false;
pagingView.scrollView = scrollView;
[self.view addSubview:pagingView];
[self.view addSubview:scrollView];

它可以工作,但我可以在屏幕上的任何位置滑动以在scrollview中移动。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

不清楚你在这做什么。您要向self.view添加两个滚动视图,但实际上您只需要一个。

使用最少代码的最简单方法是使用一个普通UIScrollView,将您的按钮显示为正确大小UIView的子视图(您需要按钮周围的间隙),并为滚动启用分页视图。完成。

请注意,您描述的测量结果无效。滚动视图width是208,按钮200,因此包装器视图应该具有宽度208并且按钮的origin.x应该是4.滚动视图height是280,按钮同样,没有垂直边距:包装器高度也是280,按钮origin.y是0。