天天看点

ios基于UITableViewController实现列表

实现效果图如下:

ios基于UITableViewController实现列表

News.h

#import <Foundation/Foundation.h>

@interface News : NSObject

@property (nonatomic, strong) NSString *title;
@property (nonatomic) NSUInteger count;
@property (nonatomic, strong) NSString *imageName;
+ (NSArray *)demoData;
@end<strong>
</strong>
           

News.m

#import "News.h"

@implementation News
+ (NSArray *)demoData
{
    News *n1 = [[News alloc]init];
    n1.title = @"四川青川县今晨发生4.8地震";
    n1.count = 2175;
    n1.imageName = @"hqg";
    
    News *n2 = [[News alloc]init];
    n2.title = @"3名夺刀少年遭多所高校\"哄抢\"";
    n2.count = 987;
    n2.imageName = @"hqg";
    
    News *n3 = [[News alloc]init];
    n3.title = @"代码显示Eclipse将可分屏多任务";
    n3.count = 3278;
    n3.imageName = @"hqg";
    
    News *n4 = [[News alloc]init];
    n4.title = @"JAVA语言估计下月进入TIOBE前20名";
    n4.count = 1462;
    n4.imageName = @"hqg";
    return @[n1, n2, n3, n4];
}@end
           

NewsCell.h

#import <UIKit/UIKit.h>

@interface NewsCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UIImageView *newsImageView;
@property (weak, nonatomic) IBOutlet UILabel *titleLabel;
@property (weak, nonatomic) IBOutlet UILabel *countLabel;

@end
           

NewsCell.m

#import "NewsCell.h"

@implementation NewsCell

- (void)awakeFromNib {
    // Initialization code
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];

    // Configure the view for the selected state
}

@end
           

NewsCell.xib

ios基于UITableViewController实现列表

NewsTableViewController.h

#import <UIKit/UIKit.h>

@interface NewsTableViewController : UITableViewController
@property (nonatomic, strong) NSArray *news;
@end
           

NewsTableViewController.m

#import "NewsTableViewController.h"
#import "News.h"
#import "NewsCell.h"

@interface NewsTableViewController ()

@end

@implementation NewsTableViewController
static NSString *cellIdentifier = @"MyNewsCell";
- (void)viewDidLoad {
    [super viewDidLoad];
    self.news = [News demoData];
    self.title = @"腾讯新闻";
    UINib *nib = [UINib nibWithNibName:@"NewsCell" bundle:nil];
    [self.tableView registerNib:nib forCellReuseIdentifier:cellIdentifier];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return self.news.count;
}

-(CGFloat)tableView:(UITableView *)tableView
heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 86;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    News *news = self.news[indexPath.row];
    NewsCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    cell.titleLabel.text = news.title;
    cell.countLabel.text = [NSString stringWithFormat:@"%ld", news.count];
    cell.newsImageView.image = [UIImage imageNamed:news.imageName];
    return cell;
}

@end