簡體   English   中英

將UIPickerView設置為UITableview的底部,而不考慮滾動位置

[英]Set a UIPickerView to bottom of UITableview regardless of scroll position

我想呈現一個UIPickerView ,它固定在UITableView的底部,無論它在何處滾動。

目前,我有一個添加到UITableViewUIPickerView ,當按下按鈕時會顯示該UITableView ,但是當我滾動表時, UIPickerView不在視圖范圍內;如果滾動到顯示范圍之外, UIPickerView似乎從未被調用過。

有誰知道如何做到這一點?

謝謝

除非您需要添加不隨表格視圖滾動的子視圖,否則UITableViewController的用法非常有用。 真的做不到。 解決方案是改用UIViewController並添加自己的表視圖,設置表視圖dataSource和委托協議,並復制基本的表視圖控制器管道。

一旦視圖控制器再次像普通的表視圖控制器一樣工作,現在可以將不隨表滾動的子視圖添加到視圖控制器的視圖中。

如果您以編程方式添加tableview

    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]//

有人告訴我,除了給出的答案之外,必須有一個更簡單的替代方法,於是我找到了解決方案。

我決定使用scrollViewDidScroll:找到滾動點的y坐標,然后將UIPickerView設置為所需的位置。

    ...
    [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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM