一,一个简单的表视图
新建一个项目使用Single View Application模板并且命名为Simple Table。
找到xib文件,将库中的Table View 拖入到xib中,并且将连接检查器中的datasource和Delegate 关联到File‘s Owner上。保存这样页面的基本完成。
在头文件中添加委托和资源。
#import<UIKit/UIKit.h>
@interface BIDViewController :UIViewController
<UITableViewDelegate,UITableViewDataSource>
@property (strong,nonatomic)NSArray *listData;
@end
- (void)viewDidLoad
{
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSArray *array =[[NSArrayalloc]initWithObjects:@"sleepy",@"Sneezy",@"Bashful",@"Happy",@"Doc",
@"Grumpy",@"Dopey",@"Thorin",@"Dorin",@"Nori",@"Ori",@"Balin",@"Dwalin",@"Fili",@"Kili",@"Oin",@"Gloin",@"Bifur",@"Bofur",@"Bomfur",nil];
self.listData=array;
}
- (void)viewDidUnload
{
[superviewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
self.listData =nil;
}
#pragma mark
#pragma mark Table View Data Source Methods
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
//该方法来查看指定分区中的行数。
return [self.listDatacount];
}
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *SimpleTableIdentifier=@"SimapleTableIdentifier";//此字符串充当表示某种表单元的键。
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier];
if(cell==nil)
{
cell=[[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:SimpleTableIdentifier];
}
NSUInteger row =[indexPath row];
cell.textLabel.text=[listDataobjectAtIndex:row];
return cell;
}
简单一个表视图就完成了。
玩了两天,今天开始学习,努力中!
现在为每个单元格添加图像。
也就是增加了一句话。
UIImage *image=[UIImageimageNamed:@"star2.png"];
cell.imageView.image=image;
每个单元格都有imageView和highlightedImage属性。如何设置单元格的详细文本标签。修改为:
cell=[[UITableViewCellalloc] initWithStyle:UITableViewCellStyleSubtitlereuseIdentifier:SimpleTableIdentifier];
cell=[[UITableViewCellalloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:SimpleTableIdentifier];
cell=[[UITableViewCellalloc] initWithStyle:UITableViewCellStyleValue2reuseIdentifier:SimpleTableIdentifier];
设置缩进级别
#pragma mark
#pragma mark Table Delegate Methods
-(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSInteger row =[indexPath row];
return row;
}
处理行的选择
选中第一行不做任何操作
-(NSIndexPath *) tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSUInteger row =[indexPath row];
if(row==0)
return nil;
return indexPath;
}
选中其他行是弹出警告框
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSInteger row =[indexPath row];
NSString *rowValue=[listData objectAtIndex:row];
NSString *message= [[NSString alloc] initWithFormat:@"You Selected %@",rowValue];
UIAlertView *alert= [[UIAlertView alloc] initWithTitle:@"Row Selected" message:message delegate:nil cancelButtonTitle:@"Yes I did"otherButtonTitles:nil];
[alert show];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
更改字体大小和行高
cell.textLabel.font=[UIFont boldSystemFontOfSize:50];
根据委托来修改行高
-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 70;
}