2013-04-03 62 views
1

當打開一個UITableViewController,我想顯示屏幕說:「這裏什麼都沒有,但」(以下Dropbox的應用程序的CF截圖)代替當沒有分區/行時,爲空行。這已經在多個應用程序中完成了,但我想知道是否有推薦的方法來實現此目的。最好的辦法:顯示「這裏沒有什麼,但」屏幕,而不是空的tableView細胞

Dropbox: empty favorites tab

我能想象這樣的多種方式,包括

  • 添加UIView作爲一個子視圖的tableViewController
  • 切換到UIViewController視圖和執行的tableView行爲我自己
  • 設置UIViewbackgroundView和隱藏的tableView細胞

感謝您對所有您的想法!

+1

第二種方法是好的恕我直言 – viral

回答

1

有一個新的(截至2014年6月)庫調用DZNEmptyDataSet正是THI處理的情況。它使用問題中描述的第一種方法(UIView作爲子視圖)。相當整潔的實現。

1

的方式,我通常做,當沒有什麼可以顯示正在顯示一個自定義單元格。

+0

@tilo這是一個好主意,用寬度和屏幕的高度一個細胞,甚至「用戶交互禁用」在這一點上。 – Spire

+0

確切!或者就像停用@iphonic一樣停用滾動。 – Zaphod

+0

感謝您的回答!我沒有考慮使用自定義單元並且喜歡這個想法。但是,這種方法似乎不適合分組表格視圖,對吧?這與我的情況無關,因爲我沒有使用它,但可能對其他人很重要。 – tilo

0

你必須有一些數據陣列,您可以通過它定義幾件事情,在表視圖。你可以在你的tableview只有其委託的方法實現這個..

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 
    if([dataArr count] == 0) 
    return 1; 
    return [dataArr count]; 
} 

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 
     if([dataArr count]==0){ 
      return self.view.frame.size.height; 

     } 
    return 44.0; 
} 

然後

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    if([dataArr count]==0){ 
     //Create a cell with the no data image 
     tableView.scrollEnabled=NO; 
    }else{ 
     //Create your default cell with data.. 
     tableView.scrollEnabled=YES; 
    } 

    return nil; 
} 

我只是給你一個想法,它的你選擇使用它..

相關問題