UIButton在水平UIScrollView问题上

时间:2013-02-21 13:25:36

标签: iphone objective-c uiscrollview uibutton

我有两个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:例如在“顶级购买”中,您可以按下图标然后滚动视图。如果我尝试这样做,按钮会立即按下!

1 个答案:

答案 0 :(得分:3)

尝试将UIButton控件事件设置为UIControlEventTouchUpInside