0

スクロールする場所に関係なく、UIPickerViewスナップを下に表示したいと思います。UITableView

現在、ボタンが押されたときに提示する にUIPickerView追加されていますが、テーブルをスクロールすると表示されなくなり、提示した場所の範囲外にスクロールすると、 は表示されませんでした呼ばれました。UITableViewUIPickerViewUIPickerView

これを達成する方法を知っている人はいますか?

感謝

4

3 に答える 3

1

UITableViewControllerテーブルビューでスクロールしないサブビューを追加する必要がない限り、の使用は素晴らしいです。それは本当にできません。解決策は、UIViewController代わりに使用して独自のテーブルビューを追加し、テーブルビューのdataSourceを設定してプロトコルを委任し、基本的なテーブルビューコントローラーの配管を複製することです。

ビューコントローラが通常のテーブルビューコントローラのように機能するようになったら、テーブルと一緒にスクロールしないサブビューをビューコントローラのビューに追加できるようになりました。

于 2012-12-08T06:34:24.360 に答える
0

プログラムでテーブルビューを追加する場合

    SearchtableView.frame = CGRectMake(450, 90, 318, 600);
            SearchtableView  =  [[UITableView alloc] initWithFrame:CGRectMake(623, 90, 400, 400)style:UITableViewStyleGrouped];
            [self.view addSubview:SearchtableView];
//belove the tableview//
//Add UIPickerView to the self.view]//
于 2012-12-08T06:51:18.013 に答える
0

私が与えられた答えにはもっと簡単な代替案があるに違いないと何かが私に言ったので、私は解決策を見つけました.

scrollViewDidScroll:UIPickerView を使用して目的の場所にアニメーション化することで、スクロール ポイントの y 座標を見つけることにしました。

    ...
    [UIView beginAnimations:nil context:NULL];
     CGFloat pointY = self.scrollPoint.y;
    [self.sortPicker setFrame:CGRectMake(0, pointY + 200, 320, 216)];
    [UIView commitAnimations];
    ...

UIPickerView は、スクロールが停止した場合にのみ表示されるため、タッチ時にスクロールを停止するメソッドを実装する必要があります。

- (void)stopScroll:(UITableView *)tableview
{
    CGPoint offset = tableview.contentOffset;
    [tableview setContentOffset:offset animated:NO];
}

これにより、任意の場所でいつでも UIPickerView を表示および閉じることができます。

于 2012-12-14T03:39:15.247 に答える