UIPageControl不响应触摸,不改变点

时间:2010-11-11 14:47:58

标签: iphone objective-c cocoa-touch uikit ios4

我有一个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];
}

4 个答案:

答案 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组件的宽度设置得相当大,例如。那么它应该会更好。