搜尋此網誌

2012年7月26日 星期四

(IOS)客制化UITableViewCell


自定一個自已的UITableViewCell,於是在iCodeBlog找到了一篇文章"Custom UITableViewCell Using Interface Builder",上面還附有影片,可以很清楚的了解每一個步驟。


1.首先,我們先建立一個tableViewController和他的xib檔,並記得要設定section數量和列數量。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// Return the number of sections.
return 1;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
// Return the number of rows in the section.
return 10;
}

2.設定完成之後,新建一個Object-C class "yourStyleCell.msubclass選項選UITableViewCell,並建立一個xib檔,
3.接下來我們使用Interface Builder,把原本的view刪除,從LibraryUITableViewCell拉進來,並且設計自已想要的樣式,然後把這個xib檔的類別設定為"yourStyleCell"
4.接下來我們在"yourStyleCell"類別中建立所需要的IBOutlet並且和xib檔做link
5.最後我們回到tableViewController.h檔中,import剛剛建立的"yourStyleCell.h"檔,
如果有變更cell的高度,請記得在tableViewControllertable也要同樣變更row的高度

接下來我們要對下面這個function進行修改
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath {
static NSString *CellIdentifier = @"yourStyleCell";//這是我們在yourStyleCell.xib檔中對cell進行的定義值,
yourStyleCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
//初始化cell
if (cell == nil)
{
NSArray *nibObjs = [[NSBundle mainBundleloadNibNamed:@"yourStyleCell" owner:nil options:nil];
for ( id currentObj in nibObjs)
{
if ([currentObj isKindOfClass:[ yourtStyleCell class]])
{
cell = ( yourStyleCell *)currentObj;
}
}
}
// 定義cell的內容
NSInteger row = [indexPath row];//get row number
// 如果是我們有一個Label,名稱為Name,我們可以這樣設定
[[cell NamesetText:@"Name"];
// 如果是我們有一個UIImageView,名稱為image,我們可以這樣設定
[[cell imagesetImage:[UIImage imageNamed:@"yourImageFile.png"]];
return cell;
}


這裡有要注意的在建立yourStyleCell時候關聯要注意,影片中最後才發現哪裡錯了
另外如果要調整高度記得要調整TableView並不是針對tableViewCell

沒有留言:

張貼留言