【代碼筆記】iOS-cell自動變化大小,代碼筆記ios-cell
一,。
二,工程圖。
三,代碼。
RootViewController.h
#import <UIKit/UIKit.h>@interface RootViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>{ UITableView* myTableView; NSDictionary *dataDic;}@property (nonatomic , retain)NSArray* titleArray;@property (nonatomic , retain)NSArray* contentArray;@end
RootViewController.m
#import "RootViewController.h"#import "RTLabel.h"@interface RootViewController ()@end@implementation RootViewController- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self;}- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view. self.title=@"RTLabel"; [self initContentView]; }- (void)initContentView{ //初始化標題 self.titleArray = [NSArray arrayWithObjects: @"姓名:", @"年績:", @"家鄉:", @"介紹:", nil]; self.contentArray = [NSArray arrayWithObjects: @"李華", @"23", @"河北", @"我叫李華,今年23,來自河北,希望大家多多歡迎,喜歡電腦,來自河北的一個學校.111111111111111111111111111",nil]; //添加列表 myTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, self.view.bounds.size.height) style:UITableViewStylePlain]; [myTableView setDelegate:self]; [myTableView setDataSource:self]; [myTableView setBackgroundColor:[UIColor clearColor]]; [self.view addSubview:myTableView];}#pragma mark - tableview delegate and dataSoucre- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString* identifier = @"cell"; UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:identifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; [cell setSelectionStyle:UITableViewCellSelectionStyleNone]; [cell setBackgroundColor:[UIColor clearColor]]; //cell白色背景 UIImage* bcImg = [UIImage imageNamed:@"label"]; UIImageView* bcImgV = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(cell.frame), CGRectGetHeight(cell.contentView.frame))]; [bcImgV setImage:bcImg]; [cell.contentView addSubview:bcImgV]; //cell中的內容 RTLabel* nameLabel = [[RTLabel alloc] initWithFrame:CGRectMake( 10, 15, 300 , 15)]; [nameLabel setText:[NSString stringWithFormat:@"<font face='Helvetica' size=14 color=orange> %@ </font> <font face=AmericanTypewriter size=14 color=gray> %@ </font> ",[self.titleArray objectAtIndex:indexPath.row],[self.contentArray objectAtIndex:indexPath.row]]]; CGSize optimumSize = [nameLabel optimumSize]; [nameLabel setFrame:CGRectMake( 10, 15, 300 , optimumSize.height)]; [nameLabel setBackgroundColor:[UIColor clearColor]]; [cell.contentView addSubview:nameLabel]; [bcImgV setFrame:CGRectMake(0, 0, 320, 30 + optimumSize.height)]; } return cell;}- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ ;}- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ RTLabel *label = [[RTLabel alloc] initWithFrame:CGRectMake(10,10,300,100)]; //[label setFont:[UIFont fontWithName:@"HelveticaNeue-CondensedBold" size:20]]; [label setParagraphReplacement:@""]; [label setText:[NSString stringWithFormat:@"<font face='Helvetica' size=14 color=orange> %@ </font> <font face=AmericanTypewriter size=14 color=gray> %@ </font> ",[self.titleArray objectAtIndex:indexPath.row],[self.contentArray objectAtIndex:indexPath.row]]]; CGSize optimumSize = [label optimumSize]; return 30 + optimumSize.height;}- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ return 1;}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return self.titleArray.count;}- (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end