UIPageControl不响应触摸,不改变点
我有一个UIPageControl。当我点击一个点来改变页面时,没有任何反应。第二个点不会突出显示。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];
}
设置页面控件的框架(宽度和高度)不只是中心,否则它具有零维度并且不响应触摸。
pageControl = [[UIPageControl alloc]
initWithFrame:CGRectMake(100, 430, 200, 50)];
pageControl.center = CGPointMake(160.0f, 430.0f);
我最近在我的应用程序中有同样的症状。我的解决方案是在视图层次结构中将UIPageControl
向上移动(如果您愿意,可以使用z-index),以便它在根视图内位于UIScrollView
之上。如果它不在UIScrollView
之上,即使它看起来像是可见的,它也不会触及。
我不知道这是否是你的问题,但只是想我要附和。
有时,它有助于使的PageControl所有重叠子视图的前面。
那是在我的情况天雷:
[self.view bringSubviewToFront: pageControl];
有时当的PageControl宽度太小,这也可能发生。尝试将页面控件组件的宽度设置得相当大, 320.然后它应该更好地工作。
您的评论“唤醒我”,我将pageControl设置为其父视图的宽度,现在,点击次数非常高。 – user1105951 2016-05-23 10:36:37
好!我很高兴知道这一点。 – flame3 2016-05-24 04:01:21
这不起作用。我将页数设置为7.当我点击点2和3时,它没有响应。我点击了点4,它响应并保持点击它直到我到达最后一个点,即7.现在,当我点击点2和3时,它响应! – 2011-05-12 13:45:20
@pratikshabhisikar:答案是专门解决Alex L的问题。当然,这不是也不可能成为每个UIPageControl问题的答案。如果它不能解决你的具体情况,你的问题的原因和解决方案必须有所不同,并且不能证明它是失败的。 – Anna 2011-05-12 14:06:31
我在做[[UIPageControl alloc] init]时没有设置帧,因为我总是认为UIPageControl的大小会自动调整。我错了! [[UIPageControl alloc] initWithFrame:CGRect]取得了诀窍。 TY! – DZenBot 2012-12-09 06:57:22