Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在使用UITableViewController时,如何使pickerView粘到底部?_Ios_Objective C_Uitableview - Fatal编程技术网

Ios 在使用UITableViewController时,如何使pickerView粘到底部?

Ios 在使用UITableViewController时,如何使pickerView粘到底部?,ios,objective-c,uitableview,Ios,Objective C,Uitableview,我有相当大的UITableViewController,由文本字段组成。我需要在屏幕底部显示我的pickerView。pickerView的问题是它在滚动表时滚动(因为我已经将它作为子视图添加到tableView中)。我看到的唯一选项是将此pickerView添加到窗口: UIWindow *window = [[UIApplication sharedApplication] keyWindow]; [window addSubview:view]; 然而,我对此并不确定,这看起来像是一个黑

我有相当大的UITableViewController,由文本字段组成。我需要在屏幕底部显示我的pickerView。pickerView的问题是它在滚动表时滚动(因为我已经将它作为子视图添加到tableView中)。我看到的唯一选项是将此pickerView添加到窗口:

UIWindow *window = [[UIApplication sharedApplication] keyWindow];
[window addSubview:view];
然而,我对此并不确定,这看起来像是一个黑客。iOS6+使用安全吗?有谁有更优雅的解决方案可以将pickerView添加到tableView的底部并使其粘贴到底部


在使用故事板之前,我总是使用通用UIViewController而不是UITableViewController,但是我当前的项目使用故事板和静态表视图,所以我不能使用通用UIViewController。我对UITableViewController不满意的主要原因是,它的tableView是根视图,并且您可能会遇到一些严重的问题(包括这个问题)。例如,您不能将任何视图放置在中间的顶部,因为将视图添加为子视图将以将此视图放置在表内容中而不是上方结束。因此,活动指示器和其他自定义视图不能停留在中心位置,因为如果滚动tableView,则这些视图也将滚动。在窗口中添加俯视图的解决方案是通过代码实现的,但您仍然无法通过故事板添加它。

您应该问自己的第一个问题:您真的需要表格吗。使用滚动视图可能会更好,这取决于表中包含的内容及其动态性

下一步:如果您需要一张桌子,并且也需要选择器,您希望固定在屏幕底部,那么我建议如下:

  • 创建一个
    UIViewController
    contollerWithPicker
    ,用于保存选择器和容器视图tableContainer
  • 仅为您的表及其内容创建
    UITableViewController
    myTableController
  • 将myTableController分配给tableContainer
  • 根据需要,您可能希望使用contollerWithPicker或
    myTableContoller
    作为表的数据源。两者都很好用。有时一个更容易实现和维护,有时另一个更容易实现和维护 但不要尝试将表视图与同一视图内的表之外的、独立于表的固定UI元素混合使用

    。。。。。。。。。。。
    如果它位于屏幕顶部、表格上方,则可以在表格的标题视图中定位选择器

    关于使用scrollView的一个非常好的观点。然而,为了使用ScrollView(),我们需要从代码中进行一些关于contentSize的设置。此外,当键盘显示在与tableView的合同中时,scrollView不会自动调整大小。所以,与纯滚动视图相比,当前tableView肯定有一些优点。