如何在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了一个更好的把戏!
- 确保没有导航栏(从失败的尝试)
- 拖放一个“Bar Button Item”(Xcode会神奇地将它放在底部)
- 注意 :如果您现在运行应用程序,您将不会看到任何东西! (所以请继续阅读)
-
在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;