【问题标题】:Combined UITableView with other elements - how to create and use the view?将 UITableView 与其他元素结合——如何创建和使用视图?
【发布时间】:2012-04-05 08:39:10
【问题描述】:

我有一个项目接近完成我需要它做的所有事情。它有一个主页,其中有四个按钮,可让您选择一个选项。然后从这些选项启动一个 tableview 页面,并显示来自网站的已解析 XML 提要。然后,您可以选择表格中的一个选项来查看该项目的详细视图、查询它等等。

我的问题是我需要向 TableViewController 页面添加更多元素,而不是 tableview 本身。我想要一个自定义的后退按钮(不是导航控制器标准)以及一些标签、图像等。

在 TableViewController xib 中,tableview 本身填充页面。我无法调整它的大小以在其上方添加更多元素。我可以在表格视图上方添加一个看似“视图”的窗口并将东西放入其中。但它似乎将视图添加到 tableview。这意味着当我滚动表格时,新的后退按钮等其他元素会作为表格的一部分滚动出去。

所以我想知道我是否需要这个页面不是 tableviewcontroller,而是一个 viewcontroller,里面有一个 tableview,以及我的其他带有按钮的视图等。这是正确的方法吗?但如果是这样的话,那么我如何在代码中实例化 tableviewcontroller 呢?因为我的页面将不再属于那种类型 - 它只是一个视图控制器。但是在代码中,我正在制作一个 tableviewcontroller .. 有点被那条路线吓到了。

对此的任何启发将不胜感激,因为各种搜索都让我无所适从。谢谢。

【问题讨论】:

    标签: objective-c ios uitableview


    【解决方案1】:

    要自定义它,这是要走的路:

    • 将您的类改为视图控制器,它实现 TableViewDelegate 和 TableViewData Source 协议。
    • 在您的控制器的视图 didLoad 中,创建表视图,设置其委托、数据源和您希望的任何其他属性,并将其作为子视图添加到您的视图中。

      tableView = [[[UITableView alloc] init] autorelease];
      tableView.delegate = self;
      tableView.dataSource = self;
      // .. Other customization
      [self.view addSubview:tableView];
      

    我建议以编程方式而不是 IB 来执行此操作。

    【讨论】:

    • 好的,这听起来很清楚。因此,一旦我将类更改为 viewController,我就可以在 xib 中自定义页面。我将tableview添加到这个页面,然后在viewDidLoad中实例化。听起来不错,会试一试。谢谢。
    【解决方案2】:

    您需要一个具有 IBOutlet UITableView 的 UIViewController,而不是 UITableViewController。从 Storyboard 中拖放一个 UITableView 组件并将其连接起来,并根据需要将其放置在屏幕上。这个 UIViewController 应该实现 UITableViewDelegate 和 UITableViewDataSource 方法。

    编辑:请记住 UITableViewController 只是 UIViewController 的子类,因此您不必真正摆脱所有代码。 :) 你只需要对你的头文件和主文件进行细微的调整,并将 Storyboard 更改为 UIViewController 而不是我上面提到的 UITableViewController。

    【讨论】:

    • 好的,谢谢。不过,我现在不使用故事板,因为我坚持支持旧版本的 iOS。但我明白你的意思,会试一试。
    猜你喜欢
    • 1970-01-01
    • 2019-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-11
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多