10

我正在构建一个简单的笔记应用程序,我想在 TableView 的底部添加一个静态栏。例如,我想添加一个帮助按钮。我怎样才能对我的 TableView 执行此操作?

至今:

我已经通过情节提要添加了一个工具栏,但这使它粘在最后一个 tableView 单元格的末尾。我希望它粘在底部。我输入此代码以编程方式执行:

@property (strong, nonatomic) IBOutlet UIToolbar *toolbar;

在我的 tableViewController.h 文件和

[self.view addSubview:_toolbar];
[self.navigationController.view setFrame:self.view.frame];

在我的viewDidLoad方法中的 tableViewController.m 文件中

谢谢!

4

8 回答 8

10

最好的解决方案是使用 UIViewController 而不是 UITableViewController。(上面已经说过了,但让我给你细节)。

使用其各自的 XIB 创建一个新的 UIViewController。在你的新 UIViewController 的视图中拖动一个 UITableView,调整它的大小,然后将你的 UIToolbar 拖动到任何你想要的地方。

你应该有这样的东西:

在此处输入图像描述

黑色边框代表 UIViewController 的主视图。红色边框代表表格视图。蓝色边框代表您的工具栏。

之后,让你的 UIViewController 遵守两个协议:UITableViewDelegate 和 UITableViewDataSource。您将必须手动实现它的基本方法,例如 cellForRowAtIndexPath、numberOfRowsInSection 等,但这不会花费您很长时间。

将你的 UITableView 链接到你的 UIViewController。也将它的“数据源”和“委托”属性链接到视图控制器。

您将在 15 分钟内完成设置。

于 2012-10-25T04:14:00.067 回答
7

我刚刚发现了一个更好的技巧!

  1. 确保没有导航栏(来自您的失败尝试)
  2. 拖放一个“Bar Button Item”(Xcode 会神奇地将它放置在底部)
  3. 注意:如果您现在运行应用程序,您将看不到任何东西!(所以请继续阅读)
  4. 在 viewDidLoad 下添加以下代码行:

    self.navigationController.toolbarHidden = NO;

完毕!

于 2013-11-15T17:22:03.587 回答
3

您可以将标准 UITableViewController 与情节提要一起使用。在“模拟指标”中,转到底部栏菜单并选择“工具栏”。工具栏出现。然后,您可以向其中添加按钮项。

于 2013-03-03T21:25:34.700 回答
1

通过代码添加工具栏很简单。

UIToolbar *toobar = [[UIToolbar alloc]initWithFrame:frameYouNeed];
toobar.barStyle = UIBarStyleBlack;
[self.view addSubview:toobar];

但是如果你使用 UITableView 作为 subView,而不是 UITableViewController 会更好

于 2012-10-25T04:02:33.100 回答
0

你应该使用ViewController而不是TableViewController

然后TableView在你的头文件中将你的作为 IBOutlet 。声明委托和数据源。你准备好了。

于 2012-10-25T04:01:04.057 回答
0

您可以使用默认包含在所有 UITableViews 中的工具栏,并将 UIBarButtonItems 添加到它。尽管名称如此,但 UIBarButtonItems 可以自定义为任何类型的视图。然后将它们添加到属性 self.toolbarItems,UITableViews 默认可以使用该属性。例如

UIBarButtonItem * textItem;
UILabel * label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 250, 48)];
label.text =  @"ImportantText";
label.adjustsFontSizeToFitWidth = YES;
label.textAlignment = NSTextAlignmentRight;
textItem = [[ UIBarButtonItem alloc ] initWithCustomView:label];

UIBarButtonItem * switchItem;
UISwitch * switchCtrl = [[UISwitch alloc] init];
[switchCtrl addTarget:self action:@selector(toggleSomething:) forControlEvents:UIControlEventValueChanged];
switchItem = [[ UIBarButtonItem alloc ] initWithCustomView:switchCtrl];

self.toolbarItems = [ NSArray arrayWithObjects:
                     [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
                     textItem,switchItem,nil ];
于 2014-03-21T19:38:20.180 回答
0

通过检查导航控制器中的显示工具栏,我在情节提要中得到了这个工作。然后将 Bar Button Items 拖到现在显示在 Table View Controller 底部的灰色工具栏区域。然后将 Bar Button Items 连接到方法 Navigation Controller。

于 2014-09-02T08:13:01.723 回答
-1

试试这个,它会将您的工具栏添加为表格的 footerView。并确保您将表格的页脚高度设置为 44(工具栏的高度)。

self.tableView.tableFooterView = _toolbar;
于 2012-10-25T03:58:09.000 回答