无论滚动位置如何,都将UIPickerView设置为UITableview的底部

时间:2012-12-08 06:30:04

标签: objective-c ios uitableview uiscrollview uipickerview

我想在UIPickerView的底部张贴UITableView,无论它在哪里滚动。

目前,当我按下按钮时,我将UIPickerView添加到UITableView,但是当我滚动表格时,UIPickerView会退出视图,如果我'我滚动到我所呈现的范围之外,UIPickerView似乎从未被调用过。

有谁知道如何做到这一点?

感谢

3 个答案:

答案 0 :(得分:1)

除非您需要添加不与表视图一起滚动的子视图,否则使用UITableViewController非常有用。它无法真正完成。解决方案是使用UIViewController代替并添加自己的表视图,设置表视图dataSource并委托协议并复制基本的表视图控制器管道。

一旦您的视图控制器再次像普通的表视图控制器一样工作,您现在可以将子视图添加到视图控制器的视图中,该视图不会随表一起滚动。

答案 1 :(得分:0)

如果你以编程方式添加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]//

答案 2 :(得分:0)

有些东西告诉我,必须有一个更简单的替代方案,我得到的答案,我找到了解决方案。

我决定使用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。