iOS 中快速简单高效的实现自定义tableViewCell 的方法-亲测实战版本-精华版

ios7 新升级之后界面有了很大的变化,xcode模拟器去掉了手机边框和home键,如果想回到主页面,可以按住shift+comment+r键。废话少说先展示一下新UI下UItableView设置为Group后的效果:

技术分享

整体界面显得更加简洁,而且UITableViewCell的宽度默认为满屛,也取消了圆角。

下面说下自定义UITableView的过程:

首先在storyboard中给cell拖过来一个UIimageView和两个label 

技术分享

然后新建一个MyCell类继承自UITableViewCell。

MyCell代码:

#import <UIKit/UIKit.h>  
  
@interface MyCell : UITableViewCell  
@property (weak, nonatomic) IBOutlet UIImageView *myImageView;  
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;  
@property (weak, nonatomic) IBOutlet UILabel *timeLabel;  
  
@end  
#import "MyCell.h"  
  
@implementation MyCell  
  
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier  
{  
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];  
    if (self) {  
        // Initialization code  
    }  
    return self;  
}  
  
- (void)setSelected:(BOOL)selected animated:(BOOL)animated  
{  
    [super setSelected:selected animated:animated];  
  
    // Configure the view for the selected state  
}  
#pragma mark 设置Cell的边框宽度  
- (void)setFrame:(CGRect)frame {  
    frame.origin.x += 10;  
    frame.size.width -= 22 * 10;  
    [super setFrame:frame];  
}  
  
@end  

技术分享

使用:

在UITableViewController中使用,代码如下:

#import "RootViewController.h"  
#import "MyCell.h"  
@interface RootViewController ()  
  
@end  
  
@implementation RootViewController  
  
- (id)initWithStyle:(UITableViewStyle)style  
{  
    self = [super initWithStyle:style];  
    if (self) {  
        // Custom initialization  
    }  
    return self;  
}  
  
- (void)viewDidLoad  
{  
    [super viewDidLoad];  
      
  
}  
  
- (void)didReceiveMemoryWarning  
{  
    [super didReceiveMemoryWarning];  
    // Dispose of any resources that can be recreated.  
}  
  
#pragma mark - Table view data source  
  
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView  
{  
    return 2;  
}  
  
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section  
{  
    return 3;  
}  
  
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  
{  
    static NSString *CellIdentifier = @"Cell";  
    MyCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];  
      
    if (cell==nil) {  
        cell=[[MyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];  
    }  
      
    cell.nameLabel.text=@"WildCat";  
    cell.timeLabel.text=@"2013-11-7";  
    return cell;  
}  
  
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{  
  
    return  75.f;  
}  
  
  
@end  

修改后的效果:

技术分享

当然如果你喜欢cell满屏的效果,你完全可以不设cell的宽度。。。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。