0

「firstVC」と「secondVC」の2つのViewControllerがあります。2つのviewControllesを分離したまま、水平方向にページ分割されたScrollviewを作成したいので、新しい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];

すべてが機能しますが、2つの問題があります。

1)ボタンがIBActionに接続されているが、メソッドが空の場合、ボタンを押すと、画像が強調表示されます。メソッドが空でない場合(もちろん、何かをしなければならないためです!)、ボタンはすぐにメソッドを呼び出すので、ハイライトはありません!このメソッドは、ユーザーがボタンから指を離したときではなく(機能するはずです)、画面に触れた瞬間に呼び出されるようです。この問題は、2番目の問題に関連していると思います。

2)このため、scrollViewを(左から右に、またはその逆に)スクロールすることは非常に困難です。これは、ボタンに接続されたメソッドを呼び出すことが多いためです...

私が欲しいのは、モバイル版のAppStoreのようなものです。たとえば、「トップ購入」では、アイコンを押してからビューをスクロールできます。やろうとするとすぐにボタンが押されます!

4

1 に答える 1

3

UIButton制御イベントをに設定してみてくださいUIControlEventTouchUpInside

于 2013-02-21T13:34:22.803 に答える