如何在iOS中向TableView添加工具栏

时间:2012-10-25 03:47:12

标签: objective-c ios toolbar

我正在构建一个简单的notes应用程序,我想在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文件中

谢谢!

8 个答案:

答案 0 :(得分:10)

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

使用它的相应XIB创建一个新的UIViewController。在新的UIViewController视图中,在UITableView中拖动它,调整它的大小,然后在任意位置拖动你的UIToolbar。

你应该有这样的东西:

enter image description here

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

然后,让你的UIViewController符合两个协议:UITableViewDelegate和UITableViewDataSource。您将手动实现它的基本方法,例如我们的cellForRowAtIndexPath,numberOfRowsInSection等,但它不会花费你很长时间。

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

您将在不到15分钟的时间内完成设置。

答案 1 :(得分:6)

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

  1. 确保没有导航栏(来自失败的尝试)
  2. 拖放“条形按钮项目”(Xcode会在底部神奇地放置它)
  3. 注意:如果您现在运行应用程序,您将看不到任何内容! (所以继续阅读)
  4. 在viewDidLoad:

    下添加以下代码行

    self.navigationController.toolbarHidden = NO;

  5. 完成!

答案 2 :(得分:3)

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

答案 3 :(得分:1)

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

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

但是如果你使用UITableView作为subView而不是UITableViewController

会更好

答案 4 :(得分:0)

您应该使用ViewController代替TableViewController

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

答案 5 :(得分: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 ];

答案 6 :(得分:0)

通过检查导航控制器中的显示工具栏,我在故事板中工作了。然后将Bar Button Items拖动到现在显示在Table View Controller底部的灰色工具栏区域。然后将条形按钮项目连接到方法导航控制器。

答案 7 :(得分:-1)

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

self.tableView.tableFooterView = _toolbar;