0

UIViewController と UIScrollView があります。ビューコントローラーに複数のビューを追加する必要があり、スクロールビューはその1つにすぎないため、コントローラーのビューをダミーのUIViewに設定し、スクロールを子として設定しようとしました:

    [self setView:[[UIView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)]];
    [[self view] setUserInteractionEnabled:NO];

    // TDHexMapScrollView inherits from UIViewController
    [self setHexMapScrollView:[[TDHexMapScrollView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)]];
    [[self view] addSubview:[self hexMapScrollView]];

この方法では、スクロールは機能しません。これをメイン ビューとして追加すると、スクロールとパンが正しく機能します。

    [self setHexMapScrollView:[[TDHexMapScrollView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)]];
    [self setView:[self hexMapScrollView]];

何か助けはありますか?ありがとう

4

2 に答える 2

0

コメントに対する返信はありませんでしたが、これを行う方法の例をお見せしたいと思いました。

宣言する

CGSize scrollSize;

あなたの実装で。次に、scrollView、ビュー、ラベルなどを作成します。

self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, screenFrame.size.width, screenFrame.size.height - self.tabBarController.tabBar.frame.size.height - self.navigationController.navigationBar.frame.size.height)];
self.scrollView.scrollEnabled = YES;
scrollSize.height = self.View1.frame.size.height + self.Label1.frame.size.height + self.Label2.frame.size.height + self.Label3.frame.size.height + self.Label4.frame.size.height + self.Label5.frame.size.height + self.Label6.frame.size.height;
scrollSize.width = screenFrame.size.width;
[self.scrollView setContentSize:scrollSize];

scrollView に追加する

[self.scrollView addSubview:self.View1];
//Repeat for all views / labels / etc

scrollView を ViewController に追加する

[self.view addSubview:self.scrollView];
于 2012-11-13T00:53:03.933 に答える
0

これをしないでください:

[[self view] setUserInteractionEnabled:NO];

これにより、ビューとすべてのサブビューの相互作用が無効になります。これは、タッチ イベントを無視し、サブビューに伝達しないことを意味します。つまり、スクロール ビューはイベントを取得しません。

于 2012-11-12T19:39:05.740 に答える