0

uiscrollview で問題が発生しています。通常のスクロール ビューとして使用すると、すべての UIButtons が期待どおりに機能します。ページングを追加すると、ボタンが反応しなくなります。私は上端が突き出ていて、そこからのプレスを受け入れます. それらは間違いなくスクロールビューの背後にありますが、私が望むようにページを移動すると、ページをスクロールしたりスクロールしたりします。さまざまな回答を読みましたが、ジェスチャー コントローラーを使用しない限り、ほとんどの回答は得られません。ページングを作成するコードを添付します。私が見逃しているかもしれないものを教えてもらえますか?

-(void)scollPagingSetup:(float)frameSize {
float numberOfPages;
int maxheight;

[self.view setPagingEnabled:YES];
[self.view setBounces:YES];

UIView *first = [[UIView alloc]initWithFrame:self.view.frame];
[self.view addSubview:first];


maxheight = [UIScreen mainScreen].bounds.size.height;
numberOfPages = ceil(frameSize/maxheight);
for (int i = 1; i < numberOfPages; i++) {
    CGRect frame;
    frame.origin.x = 0;
    frame.origin.y = self.view.frame.size.height * i;
    frame.size = self.view.frame.size;

    UIView *subview = [[UIView alloc] initWithFrame:frame];
    [self.view addSubview:subview];

}

self.view.contentSize = CGSizeMake(self.view.frame.size.width, self.view.frame.size.height *numberOfPages);
}

ご覧いただきありがとうございます。この問題を解決する何かを見つけましたが、問題の本当の解決策が何であるかを把握できませんでした。その質問へのリンクは次のとおりです。

iPhone UIButton が UIScrollView で応答しない

4

1 に答える 1

0

問題は、コンテンツ サイズが適切に設定されていないため、「クリック可能領域」(コンテンツ領域のサイズ) も設定されていないことです...コードの最後の行 (最後の「}」の前の行) で、scrollView の contentSize を設定しています。フレーム自体は0になります...代わりにこれを試してください(「self」(スクロールビュー自体)の代わりに「first」(ネストされたビュー)を使用します)。

self.view.contentSize = CGSizeMake(firstframe.origin.x, (firstframe.origin.y - 20) * numberOfPages);

編集された回答に関する質問ポスターからのメモ:回答
を変更しました。アプリをもう少し操作した後、完全にスクロールしていませんでした。これを修正してページ全体のスクロールを引き起こすために行ったことを反映するように変更を加えました。uiscrollview のオフセットのため、-20 のオフセットが必要でした。このオフセットは、インターフェイス ビルダーで確認できます。

于 2013-02-26T03:29:39.313 に答える