标签:ios;uitableview;listview;图片不能正常显示
UITableView就相当于android中的listview,在这里先介绍一个简单的UItableView的用法,因为我也是刚学。而且也遇到了一些问题。直接上代码吧
这是ViewController.h
#import <UIKit/UIKit.h> @interface ViewController : UIViewController<UITableViewDataSource,UITableViewDelegate> @property (nonatomic,retain) NSArray * fileList; @property (nonatomic,retain) UITableView * tableView; @end
这是ViewController.m文件
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSBundle * bundle = [NSBundle mainBundle]; NSString * plistPath = [bundle pathForResource:@"infoHeaderAndTitleAndDetile" ofType:@"plist"]; self.fileList=[[NSArray alloc] initWithContentsOfFile:plistPath]; UITableView * tView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStyleGrouped]; tView.delegate=self; tView.dataSource=self; _tableView=tView; [self.view addSubview:_tableView]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } -(UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellWithIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellWithIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellWithIdentifier]; } NSUInteger row = [indexPath row]; NSDictionary *rowDict = [self.fileList objectAtIndex:row]; cell.textLabel.text = [rowDict objectForKey :@"title"]; cell.imageView.opaque=YES;//must add this sentence,or the image will gone cell.imageView.image = [UIImage imageNamed:[[rowDict objectForKey :@"header"] stringByAppendingString:@".jpg"]];//image must have the .jpg or other NSLog(@"%@",cell.imageView); cell.detailTextLabel.text = [rowDict objectForKey :@"detail"]; cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator; return cell; } - (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section { return [self.fileList count]; } @end
需要注意的地方有三点,也是我遇到的问题
1、两个必须实现的协议方法,相当于java的接口的抽象方法
-(UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
和
- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
2、图片不能正常显示的原因
cell.imageView.opaque=YES;//must add this sentence,or the image will gone
这个opaque属性要设为YES,默认是NO
3、图片无需写路径,但是后缀名一定要写,比如.jpg,.png
本文出自 “灵哥笔记” 博客,请务必保留此出处http://kinghacker.blog.51cto.com/7767090/1677432
标签:ios;uitableview;listview;图片不能正常显示
原文地址:http://kinghacker.blog.51cto.com/7767090/1677432