iOS开发 – OC静态和动态单元格混用 | 67博客-生活是一种态度
登录
  • 博客建设中,多多关照,发现问题欢迎唠叨
  • Ctrl+D 欢迎收藏67博客!

iOS开发 – OC静态和动态单元格混用

点我全屏查看文章哦!ESC退出全屏别忘了哦!

iOS成长 Snail 358次浏览 已收录 3个评论

一、用SB创建一个静态的表格

iOS开发 - OC静态和动态单元格混用

二、为第二个section的单元格的cell去一个标识

iOS开发 - OC静态和动态单元格混用

三、自定义单元格

创建一个UITableviewCell

实现代码

#import "dynamicCell.h"

@implementation dynamicCell

- (void)awakeFromNib {
[superawakeFromNib];
// Initialization code
}

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {

if (self = [superinitWithStyle:style reuseIdentifier:reuseIdentifier])
{
[selfaddComtentView];

self.selectionStyle = UITableViewCellSelectionStyleNone;
}

returnself;
}

- (void)addComtentView {

UILabel *title = [[UILabelalloc] initWithFrame:CGRectMake(0.0, 0.0, self.contentView.bounds.size.width, self.contentView.bounds.size.height)];
title.text = @"dsdsdsds";
title.textColor = [UIColorgreenColor];
title.textAlignment = NSTextAlignmentCenter;
self.titleLab = title;
[self.contentViewaddSubview:self.titleLab];
}

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

// Configure the view for the selected state
}

四、控制器实现代码

@implementation StaticTabVC

- (void)viewDidLoad {
[superviewDidLoad];

}

- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];

}

#pragma mark - Table view data source


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

if (section == 1) {

return10;
}
return [supertableView:tableView numberOfRowsInSection:section];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

if (indexPath.section == 1) {

staticNSString *ID = @"cells";

dynamicCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];

if (!cell) {

cell = [[dynamicCellalloc] initWithStyle:UITableViewCellStyleValue1reuseIdentifier:ID];
}

return cell;

}

return [supertableView:tableView cellForRowAtIndexPath:indexPath];
}


- (NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath {

//这个方法用来给动态单元格重用
if (indexPath.section == 1) {
return [supertableView:tableView indentationLevelForRowAtIndexPath:[NSIndexPathindexPathForRow:0inSection:1]];
}

return [supertableView:tableView indentationLevelForRowAtIndexPath:indexPath];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

if (indexPath.section == 1) {

return44.0;
}

return  [supertableView:tableView heightForRowAtIndexPath:indexPath];
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.section == 1) {
NSLog(@"af -------> %ld",indexPath.row);
}
}

五、功能实现

iOS开发 - OC静态和动态单元格混用

wift代码 : https://www.cocoachina.com/ios/20160909/17518.html


67's blog , 版权所有丨本网站采用 BY-NC-SA协议进行授权
转载请保留原文链接及作者。
喜欢 (5)
[Liu370890676@163.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(3)个小伙伴在吐槽
  1. 很不错的技术文章,留言支持下博主。
    票据宝2016-09-20 10:58 回复 Windows XP | Chrome 31.0.1650.63
  2. 专业的博文 来留言
    微信公众号报名投票2016-09-19 17:20 回复 Windows 7 | Chrome 45.0.2454.101
  3. Coding
    你用什么写的?怎么全是a标签,div的...
    Coding2016-09-14 19:36 回复 Windows 10 | 搜狗浏览器 2.X