2015-10-07 92 views
-1

我試圖在tableview中的細胞從通用更改爲自定義,並創建了一個新的tableview細胞類。但是,我無法讓單元格識別新的自定義單元格。相反,它仍然顯示一般小區雖然我在故事板改變了設置自定義的識別檢查,並也改變了類的實現代碼如下小區到新的自定義一個。我還將故事板中單元格中的元素連接到新的自定義類。如何實現自定義單元格

我的理解是實現代碼如下VC知道從tableView cellForRowAtIndexPath方法使用的類,並且也與下面的代碼我已經改變了。該項目編譯,但繼續顯示舊的通用單元格。任何人都可以看到錯誤或建議還有什麼要做?

#import "customCell.h" 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    customCell *cell = (customCell *)[self.tableView dequeueReusableCellWithIdentifier:@"Cell"]; 
    Items *item = [self.fetchedResultsController objectAtIndexPath:indexPath]; 

    return cell; 
} 

在此先感謝您的任何建議。

編輯:

自定單元在上的tableview的頂部情節串連圖板通過拖動UI元素創建。也許這就是問題:

enter image description here

電池的樣式設置爲自定義:

enter image description here

+0

您是否也在故事板中給出了Cell的單元標識符? –

+0

是的,它之前是Cell,它仍然是Cell。這似乎是它仍然顯示通用單元格的方式。 – user1904273

+0

你可以發佈你的自定義單元格xib的截圖嗎?如果你不使用xib,你如何設計定製單元? –

回答

2

您需要創建新的UITableViewCell,並啓用 「創建XIB文件...」。 在XIB創建自定義的細胞,使這就像你的類,你剛剛創建自定義類。

然後在tableView cellForRowAtIndexPath註冊筆尖:(它在迅速的,但我敢打賭,你可以計算出C語言進行並行目標...)

tableView.registerNib(UINib(nibName: "YourUITableViewCellClass", bundle: nil), forCellReuseIdentifier: "YourCustomIdentifierFromTheCustomClass") 

然後訪問您的細胞:

var cell = tableView.dequeueReusableCellWithIdentifier("YourCustomIdentifierFromTheCustomClass") 

和而已。

+0

您不需要使用XIB,您可以從Storyboard中執行此操作。 – EmilioPelaez

+0

我想你是對的。這就是我如何讓故事板中的UITableViewController更清晰一些。然後當我需要訪問單元格的元素時,使用XIB比使用標籤調用視圖更容易:) –

0

選擇你的故事板的細胞,並在此字段中輸入您的類的名稱。

當您從識別出列,它會是類的一個實例。

enter image description here

+0

我已經完成了這個。 – user1904273

+0

你需要顯示你的自定義單元的scrrenshot。 @ user1904273 –

+0

也許我誤解了一些東西。我目前正在桌面視圖中創建故事板中的自定義單元格。我必須在其他地方創建它嗎? – user1904273

0

當你創建一個自定義單元格,你必須做這些事情:

  1. 設置標籤,圖像等的故事板細胞。

  2. 創建自定義類細胞(來自 的UITableViewCell繼承)(CustomCell.h & .M),CustomCell.h具有所有 屬性作爲用於IBOutlet中標籤,圖像等,並且合成它們所有 在執行。

  3. 創建這個自定義類回去故事板後,選擇 自定義單元格,改變其類的CustomCell並給它一些 標識,如「MyCustomCell」,然後右鍵單擊自定義單元格 並以標籤等

  4. 現在導入CustomCell類在你實現 了的UITableView類和使用屬性在連接IBOutlets在CustomCell 類中定義。

(的UITableViewCell *)的tableView:(UITableView的*)的tableView的cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

static NSString *MyIdentifier = @"MyCustomCell"; 

CustomCell*cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 

if (cell == nil) 
{ 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
            reuseIdentifier:MyIdentifier] autorelease]; 
} 

// Here we use the provided setImageWithURL: method to load the web image 
// Ensure you use a placeholder image otherwise cells will be initialized with no image 
[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://example.com/image.jpg"] 
       placeholderImage:[UIImage imageNamed:@"placeholder"]]; 
    cell.myCustomLabel.text = @"My Text"; 
return cell; } 
0

,你可以在你的主要故事板的創建自定義單元格拖動單元格視圖。

爲該原型創建自定義類。

在標識符檢查器中提及類名稱。

將該類導入到您的視圖控制器.h文件。

並將您的自定義從主要故事板連接到自定義class.h文件。

它的工作原理!