- 於project中建立一個新file,選擇Cocoa Touch後再選擇Object-C class.
- 於Class中輸入自訂的Cell名稱,例如MovieTableViewCell,於Subclass of中輸入UITableViewCell.
- 我們需要為自訂的UITableViewCell增加一個UIView,讓我們可以自訂Cell的風格。建立一個新file,選擇User Interface後再選擇View.
- 建立View後,xcode為我們預設的並不是正確的UITableViewCell,所以我們手動將預設的View刪除,再於Ojbect Library中拉出Table View Cell。
- 現在我們可以自由地在Table View Cell中設計風格,例如加入圖片及文字等等。
- 將我們自訂的UITableViewCell加入到UITableViewController//設定Section數量
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
//設定Section總行數
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 5;
}
//設定每行的Cell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
MovieTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"MovieTableViewCell" owner:nil options:nil];
cell=[views objectAtIndex:0];
cell.title.text=@"this is title";
NSURL *imageURL=[NSURL URLWithString:@"http://www.yoursite.com/hello.png"];
NSData *imageData=[NSData dataWithContentsOfURL:imageURL];
cell.img.image=[UIImage imageWithData:imageData];
}
return cell;
}
//為每行的Cell設定高度
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 77;
} - 取消預設的UITableViewCell風格,於UITableViewController中的viewDidLoad加入:[self.tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
- 如果像這個例子,每個Cell都會透過網絡下載不同的圖片顯示,那麼當使用者進行Scroll時,將會出現累格的情況,這時我們只需要在MovieTableViewCell.m中加入以下語法,即可解決這個問題:-(NSString *)reuseIdentifier
{
return @"Cell";
}
原因是以下語法將我們自訂的UITableViewCell與dequeueReusableCellWithIdentifier進行了連結,令app不需要浪費資源每次進行提取。
自訂UITableViewCell風格
Labels:
XCode
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言