簡體   English   中英

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

[英]How to add a toolbar to a TableView in iOS

我正在構建一個簡單的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文件中

謝謝!

最好的解決方案是使用UIViewController而不是UITableViewController。 (上面已經說過了,但是讓我給你詳細介紹)。

使用它的相應XIB創建一個新的UIViewController。 在新的UIViewController視圖中,在UITableView中拖動它,調整它的大小,然后在任意位置拖動你的UIToolbar。

你應該有這樣的東西:

在此輸入圖像描述

黑色邊框表示UIViewController的主視圖。 紅色邊框代表表格視圖。 藍色邊框代表您的工具欄。

然后,使您的UIViewController符合兩個協議:UITableViewDelegate和UITableViewDataSource。 你將手動實現它的基本方法,如cellForRowAtIndexPath,numberOfRowsInSection等,但它不應該花費你很長時間。

將UITableView鏈接到UIViewController。 將它的“數據源”和“委托”屬性鏈接到視圖控制器。

您將在不到15分鍾的時間內完成設置。

我剛剛發現了一個更好的技巧!

  1. 確保沒有導航欄(來自失敗的嘗試)
  2. 拖放“條形按鈕項”(Xcode將神奇地將它放在底部)
  3. 注意 :如果您現在運行應用程序,您將看不到任何東西! (所以繼續閱讀)
  4. 在viewDidLoad下添加以下代碼行:

    self.navigationController.toolbarHidden = NO;

完成!

您可以將標准UITableViewController與故事板一起使用。 在“模擬指標”中,轉到底部欄菜單,然后選擇“工具欄”。 工具欄出現。 然后,您可以向其添加按鈕項。

通過代碼添加工具欄很簡單。

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

但是如果你使用UITableView作為subView而不是UITableViewController會更好

您應該使用ViewController而不是TableViewController

然后在您的頭文件中將TableView作為IBOutlet。 聲明委托和數據源。 你准備好了。

您可以使用默認情況下包含在所有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 ];

我通過檢查導航控制器中的顯示工具欄讓我在故事板中工作。 然后將Bar Button Items拖動到現在顯示在Table View Controller底部的灰色工具欄區域。 然后將條形按鈕項目連接到方法導航控制器。

試試這個,它會將你的工具欄添加為表格的footerView。 並確保您將表格的頁腳高度設置為44(工具欄的高度)。

self.tableView.tableFooterView = _toolbar;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM