我有两个ViewController,“firstVC”和“secondVC”。 我想创建一个水平分页Scrollview,保持两个viewControlles分开:所以我创建了一个新的ViewController,“HomePage”,我创建了scrollview,我添加了fisrtVC和secondVC。
-(void)viewDidLoad {
self.firstVC = [[firstVC alloc] initWithNibName:@"firstVC" bundle:nil];
self.secondVC = [[secondVC alloc] initWithNibName:@"secondVC" bundle:nil];
//setup frame
CGRect frame = self.scrollView.frame;
frame.origin.y = 0;
self.firstVC.view.frame = frame; //this is useless, I know... it's just for understand what I'm doing
frame.origin.x = 320;
self.secondVC.view.frame = frame;
//add the VC to the scrollView
[self.scrollview addSubview:self.firstVC.view];
[self.scrollview addSubview:self.secondVC.view];
//setup the scrollView
self.scrollView.contentSize = CGSizeMake(640 , frame.size.height);
self.scrollView.pagingEnabled = YES;
self.scrollView.showsHorizontalScrollIndicator = YES;
self.scrollView.userInteractionEnabled = YES;
self.scrollView.exclusiveTouch = YES;
self.scrollView.canCancelContentTouches = YES;
self.scrollView.delaysContentTouches = YES;
}
HomePage位于UINavigationController内; FirstVC和SecondVC具有更多自定义(带图像)UIButton。 每个按钮都应该在nagivationController上推送一个新的ViewController:为了做到这一点,FirstVC和SecondVC对HomePage有一个弱引用,所以他们可以调用
[self.homePage.navigationController pushViewController:abc animated:YES];
一切正常,但我遇到两个问题:
1)如果按钮与IBAction连接,但方法为空,当我按下按钮时,我可以看到突出显示的图片。 如果方法不为空(因为当然,它必须做某事!)按钮立即调用方法,因此没有突出显示! 似乎该方法不是在用户从按钮上移开手指时调用(因为它应该工作),而是在他触摸屏幕的那一刻。 我认为,这个问题与第二个问题有关:
2)因此,滚动滚动视图非常困难(从左到右,反之亦然),因为很多时候它会调用与按钮相关的方法......
我想要的是移动版本上的AppStore:例如在“顶级购买”中,您可以按下图标然后滚动视图。如果我尝试这样做,按钮会立即按下!
答案 0 :(得分:3)
尝试将UIButton
控件事件设置为UIControlEventTouchUpInside
。