簡體   English   中英

iPhone:添加背景按鈕以在UITableView沒有單元格時查看

[英]iPhone: Add background button to view when UITableView has no cells

我有一個UITableViewController,當沒有數據可填充UITableView時,我想添加一個使用圖像的按鈕。 因此,他們將看到一個圖像,上面寫着:“未添加任何記錄,請點擊以添加一個”,而不是用戶看到沒有記錄的表格視圖,然后單擊並創建一個新的視圖。

我以為我只會隱藏UITableView,然后創建按鈕,但我從未看到該按鈕。 我在這里使用:

if ([[fetchedResultsController sections] count] == 0) {
        self.tableView.hidden = YES;
        // Create button w/ image
        UIButton * btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        btn.frame = CGRectMake(0, 0, 100, 50);
        [btn setImage:[UIImage imageNamed:@"no-rides.png"] forState:UIControlStateNormal];
        [self.view addSubview:btn];
    }

關於為什么我永遠看不到按鈕的想法? 當我顯示此視圖時,它似乎有一秒鍾的透明背景,然后變為白色...

在UITableViewController中,self.view可以是self.tableView,在這種情況下,隱藏表也將隱藏按鈕。 嘗試使用自定義UIViewController並將表或按鈕創建為self.view的子視圖。

或者,當沒有數據時,您可以創建一個包含按鈕的自定義單元格,並使用它代替普通單元格。

我不確定是否可行,但是您可以嘗試以下方法:

  1. 如果您的視圖控制器不是UITableViewController且它包含UITableView [self.tableView removeFromSuperview]; 然后[self.view addSubview];

  2. 如果視圖控制器是UITableViewController,則可能需要考慮將第一行設置為包含圖像和文本。 然后,您可以處理以下事件: tableView:didSelectRowAtIndexPath:如果用戶單擊第一個單元格,則觸發方法處理按鈕事件

我相信您可以將按鈕添加到表格頁腳中,因為即使沒有單元格,表格頁腳也會顯示出來。 (請注意,這與部分頁腳不同。)

默認情況下, UITableViewtableFooterView屬性為nil 因此,只需創建您的按鈕,然后執行:

self.tableView.tableFooterview = btn;

對於所有未來的旅行者,我只需將.userInteraction = true (Swift)設置為.userInteraction = true 總而言之:

tableView.backgroundView = constructMyViewWithButtons()
tableView.backgroundView!.userInteraction = true

暫無
暫無

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

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