【问题标题】:How do I add an UIView above a TableViewController如何在 TableViewController 上方添加 UIView
【发布时间】:2010-02-15 23:30:21
【问题描述】:

我想在我的表格视图上方显示一个 UIView,出于测试目的,我使用了一个搜索栏(以消除我的代码可能出现的任何问题)。

我的设置:
标签栏控制器
MyCustomTableViewController
查看
TableView(用于自定义单元格高度)
搜索栏

我已将搜索栏定位在“窗口”的顶部,并将表格视图拉下,使其位于搜索栏的正下方。
所以在 IB 中,一切看起来都很棒。
但是当我启动应用程序时,tableview 占据了整个屏幕,并且找不到搜索栏。

我对 iPhone 开发还很陌生,所以可能有一个非常简单的解决方案(?)。
/吉米

【问题讨论】:

    标签: iphone interface-builder xamarin.ios


    【解决方案1】:

    真正简单的解决方案是:

    • 创建一个自定义 UIViewController 子类,该子类实现 UITableViewDelegateUITableViewDataSource,就像 UITableViewController 一样。同时添加一个UITableView 插座。
    • 在 XIB 文件中,将搜索栏和 UITableView 放在视图控制器的视图中。
    • 将表格视图连接到自定义UIViewController 中的tableView 插座
    • UITableView 的委托和数据源连接到文件的所有者(实现正确委托的自定义UIViewController

    您现在拥有一个自定义视图控制器,其工作方式与UITableViewController 类似,但您可以完全控制它的布局。您以相同的方式实现委托。

    【讨论】:

    • 工作就像一个魅力 =)。 (澄清一下:“在 XIB 文件中”是您放置自定义 UIView 的位置,而不是我首先想到的自定义 UIView 的 XIB)谢谢
    【解决方案2】:

    如果您的 MyCustomTableViewController 实际上是 UITableViewController,那么您会在 IB 中注意到“视图”出口直接指向您的 UITableView,而不是 IB 中的根 UIView。这是 UITableViewController 对象的默认行为。只需将“视图”出口重定向到根 UIView,一切都应该正确显示。

    【讨论】:

    • MyCustomTableViewController 是一个派生自 UITableViewController 的类,因为我希望 tableview 包含自定义单元格。我的 MyCustomTableViewController 上似乎缺少“视图”插座,关于为什么以及如何取回它的任何想法?
    • 呃,没有。 UITableViewController 期望视图指向 UITableView,如果将其更改为指向其他类型的视图,它将完全失败。
    • 当然。我忘记了我通常将 UITableViewController 超类也更改为 UIViewController。这样我就不必在表视图委托/数据源方法中编写了。
    猜你喜欢
    • 2021-05-21
    • 2018-06-05
    • 1970-01-01
    • 2023-01-03
    • 2016-02-04
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多