如何在iOS中将工具栏添加到TableView中

我正在构build一个简单的笔记应用程序,我想在TableView的底部添加一个静态栏。 例如,我想添加一个帮助button。 我怎么能这样做只是我的TableView?

至今:

我已经通过故事板添加了一个工具栏,但是这使得它在上一次制作的tableView单元格的末尾处保持粘贴。 我想它坚持到底部。 我input这个代码做编程:

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

在我的tableViewController.h文件中

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

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

谢谢!

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

用它各自的XIB创build一个新的UIViewController。 在新的UIViewController的视图里拖动一个UITableView,调整它的大小,然后拖动你的UIToolbar到你想要的位置。

你应该有这样的东西:

在这里输入图像说明

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

之后,让你的UIViewController符合两个协议:UITableViewDelegate和UITableViewDataSource。 你将手动执行它的基本方法,如我们cellForRowAtIndexPath,numberOfRowsInSection等,但它不应该花你很长时间。

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

您将在15分钟内准备好您的设置。

我只是find了一个更好的把戏!

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

    self.navigationController.toolbarHidden = NO;

完成!

你可以用一个标准的UITableViewController和一个storyboard。 在“模拟指标”中,转到底栏菜单并select“工具栏”。 出现工具栏。 然后你可以添加button项目。

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

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

但是如果使用UITableView作为子视图,而不是UITableViewController,会更好

您应该使用ViewController而不是TableViewController

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

您可以使用默认包含在所有UITableView中的工具栏,并添加UIBarButtonItems。 尽pipe名字,UIBarButtonItems可以被定制成任何types的视图。 然后将它们添加到属性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 ]; 

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

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

 self.tableView.tableFooterView = _toolbar;