2013-08-25 25 views
-1

我正在做報紙應用程序。如何將UITableview單元格定製爲子類化

我希望有一個tableview中的第一小區由2次不同規模的,並從第二小區,他們希望在每個單元和行動同樣大小的3視圖的每一個細胞的看法

http://imgh.us/custom_cell.png

+2

你有什麼至今不工作呢? –

+0

我已經在滾動視圖中創建了它,在for循環中創建視圖,它對我來說工作正常,但是在解析evrytime時,它在for循環中創建視圖,因此顯示頁面需要很長時間..... @ XCode Monkey – KSR

回答

0

只是設計的UITableViewCell的NIB文件,並創建相對的.h和.m文件,比方說:

MyCell.h 
MyCell.m 
MyCell.xib 

在MyCell.xib地方所有你想要的子視圖,並設置類主單元對象爲MyCell(而不是標準UITableViewCell)。
然後,您可以在代碼中設置一些IBOutlet,並將它們鏈接到XIB中的子視圖。 您也可以在自定義視圖類中放置一些IBAction,雖然這是不好的做法,您應該在控制器中確實擁有自己的邏輯。 MyCell.m文件應該用於初始化邏輯和動畫。

最後,在TableViewController鉤一起:

#import "MyCell.h" 

#define k_CELL_ID @"k_CELL_ID" 
#define CELL_HEIGHT 80.0f 

@implementation MyTableViewController 


- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UITableView *theTableView = (UITableView*)self.view; 
    UINib *cellNib = [UINib nibWithNibName:@"MyCell" bundle:nil]; 
    [theTableView registerNib:cellNib forCellReuseIdentifier:k_CELL_ID]; 

    theTableView.rowHeight = CELL_HEIGHT; //not sure if this is ok in iOS 7 
} 

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath 
{ 
    MyCell *cell = [tableView dequeueReusableCellWithIdentifier:k_CELL_ID]; 
    if (cell == nil) 
     NSLog(@"cell is nil! WTF??"); 

    id someData = //retrieve customization data 
    [cell setupWithCustomData:someData]; 

    return cell; 
} 

@end 
+0

只是真正的offtopic:他爲什麼不使用IB:http://blog.teamtreehouse.com/why-i-ont-use-interface-builder – CarlJ

相關問題