首页 > 代码库 > UITableView定义分割线
UITableView定义分割线
要自定义tableview的分割线,需要手写代码往UItableviewCell 的contentView中添加视图,控制好添加视图的高度和宽度就可以实现。
效果图:
第一步:设置cell,设置的方式有xib,tableview动态原型方式,还有就是手写代码方式,在这使用动态原型,参考cell的创建方式随笔.
自定义cell类:
@interface HJTableViewCell : UITableViewCell@property (nonatomic,strong) HJContact *contact;+ (instancetype)tableViewCell:(UITableView *)tableView;@end
@interface HJTableViewCell()// 表格分割线视图@property (nonatomic,weak) UIView *separatorView;@end@implementation HJTableViewCell+ (instancetype)tableViewCell:(UITableView *)tableView{#warning 先从换成池中取,如果缓存池中没有可循环利用的cell,先去storyboard中找合适的cell ,cell是从storyboard中创建出来的,而不是手写代码方式alloc出来的 // 此标识要和storyboard 本控制器中的动态cell设置的identify标识一致 static NSString *ID = @"contactCell"; return [tableView dequeueReusableCellWithIdentifier:ID];}/** * 如果cell是通过storyboard或者xib创建的,就不可能会调用这个方法来初始化cell * 如果cell是通过手写代码创建,才会调用这个方法来初始化cell */- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{ if (self == [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { } return self;}/** * 如果cell是通过storyboard或者xib创建的,就会调用这个方法来初始化cell * 这个方法的作用类似于init方法 */- (void)awakeFromNib { NSLog(@"%s",__func__); // Initialization code // 自定义表格分割线 UIView *separatorView = [[UIView alloc] init];#warning 添加至cell的内容视图中 [self.contentView addSubview:separatorView]; self.separatorView = separatorView; separatorView.alpha = 0.5; separatorView.backgroundColor = [UIColor redColor]; }/** * 在这个方法中设置子控件的frame * 在此方法中进行设置frame 因为在此方法中获取到得self.frame才是最准确的,因为tableView可能 * 设置了行高等等 etc... * */- (void)layoutSubviews{ NSLog(@"%s",__func__);#warning 一定得调用父类的方法 [super layoutSubviews]; CGFloat x = 10; CGFloat y = self.frame.size.height - 1; CGFloat w = self.frame.size.width-20; CGFloat h = 1; self.separatorView.frame = CGRectMake(x, y, w, h);}- (void)setContact:(HJContact *)contact{ self.textLabel.text = contact.name;#warning 详情默认会显示不了,需要去storyboard动态单元格中设置 style为right Detail self.detailTextLabel.text = contact.tel;}
修改tableview默认分割线为none
// 此方法是在本控制器loadView方法初始化view完毕后系统调用此方法- (void)viewDidLoad { [super viewDidLoad]; // 设置表格分割线样式 self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;}
#warning 添加至cell的内容视图中
[self.contentView addSubview:separatorView];不然事情就白做了
cell创建使用:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { HJTableViewCell *cell = [HJTableViewCell tableViewCell:tableView]; cell.contact = self.contactList[indexPath.row]; return cell;}
完成以上步骤后自定义cell分割线完毕.
UITableView定义分割线
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。