繁体   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