0

我有一个 208pt 宽和 280pt 高的 UIScrollView,其中包含 200pt 宽和 280pt 高的自定义按钮,它们之间有 8pt 的间隙。此滚动视图已启用分页,但不会剪辑子视图,因此它总是捕捉到一个按钮居中,但显示其他按钮不在屏幕上。我正在尝试使您可以在其中滑动按钮的字段占据屏幕的整个宽度,并且我正在尝试使用称为 PagingView 的 UIScrollView 的辅助自定义子类来完成此操作,该子类只有一个 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];

它可以工作,尽管我可以与仅限于其框架的滚动视图进行交互。但是,当我尝试使用滚动视图时:

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];

它可以工作,但我可以在屏幕上的任意位置滑动以在滚动视图中移动。我该如何补救?

4

1 回答 1

0

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

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

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

于 2013-07-03T09:17:31.460 回答