我有一个UIPageControl。当我点击一个点来改变页面时,没有任何反应。第二个点不会突出显示。
当我滚动我的UIScrollView时,它工作正常。在这种情况下,第二个点会突出显示。
pageControl = [[UIPageControl alloc] init] ;
pageControl.center = CGPointMake(160.0f, 430.0f);
pageControl.numberOfPages=nPages;
pageControl.currentPage=0;
pageControl.hidesForSinglePage = YES;
pageControl.userInteractionEnabled =YES;
[pageControl addTarget:self action:@selector(pageTurn:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:pageControl];
当我更改pageControl Value时应该调用它,但是它不会被调用,因为它不响应触摸。
- (void) pageTurn: (UIPageControl *) aPageControl
{
int whichPage = aPageControl.currentPage;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
sv.contentOffset = CGPointMake(320.0f * whichPage, 0.0f);
[UIView commitAnimations];
}
答案 0 :(得分:17)
设置pagecontrol的框架(宽度和高度),而不仅仅是中心,否则它的尺寸为零,并且不响应触摸。
pageControl = [[UIPageControl alloc]
initWithFrame:CGRectMake(100, 430, 200, 50)];
pageControl.center = CGPointMake(160.0f, 430.0f);
答案 1 :(得分:4)
我最近在我的应用程序中出现了相同的症状。我的解决方案是在视图层次结构中移动UIPageControl
(z-index,如果愿意的话),使其高于根视图内的UIScrollView
。如果它不在UIScrollView
之上,即使它看起来是可见的,它也不会触及。
我不确定这是不是你的问题,只是想我会插话。
答案 2 :(得分:2)
有时将pageControl置于所有重叠子视图的前面会有所帮助。
这就是我案件中的诡计:
[self.view bringSubviewToFront: pageControl];
答案 3 :(得分:2)
有时,当页面控制宽度太小时,也会发生这种情况。尝试将pagecontrol组件的宽度设置得相当大,例如。那么它应该会更好。