簡體   English   中英

帶有TableView的子視圖控制器筆尖

[英]Child View Controller Nib with TableView

這是我第一次使用nib文件,我之所以使用它們是因為我要切換兩個視圖而不會膨脹情節提要以便於UI編輯。 我使用了子視圖控制器,所以我可以將所有內容分開。 子控制器的其中之一將包含表視圖委托和數據源。 因此,我在IB中創建了一個具有單個視圖的筆尖。 我在表格視圖中拖動,但是它已經做了一些奇怪的事情。

這是拖動到情節提要視圖控制器中的表視圖的樣子:

普通情節提要tableview

這是nib文件中的樣子:

筆尖tableview

它仍然具有默認的加利福尼亞數據。 為什么不顯示“表格視圖原型”?

我仍然嘗試向其中添加一個單元,但是沒有。 第一個圖像是通常發生的情況,單元是嵌套的。 但是,在筆尖中,它不會進入表格視圖。

正常細胞插入筆尖細胞插入

我想使用自定義單元格創建表格視圖,但是我不知道這是什么問題,或者我是否缺少某些東西,因為這是我第一次使用筆尖。

它仍然具有默認的加利福尼亞數據。 為什么不顯示“表格視圖原型”?

因為原型僅是情節提要的功能,而不是筆尖。

我仍然嘗試向其中添加一個單元,但是沒有。 第一個圖像是通常發生的情況,單元是嵌套的。 但是,在筆尖中,它不會進入表格視圖。

要使用不是來自情節提要的表格視圖使用筆尖設計的單元格類型,您必須為該單元格 單獨擁有一個筆尖(筆尖中必須沒有其他東西 )。 在表視圖中注冊筆尖(使用代碼); 從那時起,當您將一個單元出隊時,表格視圖將從筆尖加載該單元。 請參閱我的書的這一部分:

http://www.apeth.com/iOSBook/ch21.html#_custom_cells

通常無法在xib文件的表視圖中嵌套表視圖單元格。 使用xib文件定制單元格的一種可能方法是創建UITableViewCell的子類,並將其設置為xib文件中定制單元格的文件所有者(為該單元格創建一個xib文件)。 然后,您將能夠在自定義單元格的UI元素和自定義UITableViewCell子類之間創建出口。

在以下示例中,我將使用MyCustomCell作為包含該單元格的xib文件的名稱,以及從UITableViewCell派生的自定義類的名稱。

要將單元格注冊到表格視圖中,請將其放入UITableViewController子類中:

- (void)viewDidLoad 
{
    [super viewDidLoad];

    UINib *cellNib = [UINib nibWithNibName:@"MyCustomCell" bundle:nil];
    [self.tableView registerNib:cellNib forCellReuseIdentifier:@"MyCustomIdentifier"];
    ...
}

最后,在tableView:cellForRowAtIndexPath:方法中,您可以使用其標識符使自定義單元出隊,並使用之前創建的出口來設置其可視屬性:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    MyCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCustomIdentifier"];

    // Configure cell using its outlets

    return cell;
} 

暫無
暫無

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

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