登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

GJStaticTableView静态TableView

来自: 王芋头先森S 分类: iOS精品源码 上传时间: 2017-3-15 17:14:30
Tag:文件夹 信息流 color style 工程

项目介绍:

GJStaticTableView

GJStaticTableView是一个静态的TableView控件,如果你用过Storyboard的话,一定对其中的静态TableView有印象,然而在实际开发中,我们也经常需要这种控件,例如在非信息流的列表型的展示页面,我们并不需要进行Cell复用,然而你也可能因为某些原因不希望使用Storyboard,这时你可以使用GJStaticTableView了。

Installation

  • 可以直接将项目中GJStaticTableView文件夹Copy到工程目录中

  • 也可以使用CocoaPods进行集成

pod 'GJStaticTableView'

Usage

Creating a GJStaticTableView

你需要继承GJStaticTableView,在子类中只需要将自定义的Cell使用@property进行声明即可。

#import "GJStaticTableView.h"
#import "GJTableViewCell0.h"
#import "GJTableViewCell1.h"
#import "GJTableViewCell2.h"
#import "GJTableViewCell3.h"
#import "GJTableViewCell4.h"

@interface CustomTableView : GJStaticTableView
@property (nonatomic, strong) GJTableViewCell0 *cell0;
@property (nonatomic, strong) GJTableViewCell1 *cell1;
@property (nonatomic, strong) GJTableViewCell2 *cell2;
@property (nonatomic, strong) GJTableViewCell3 *cell3;
@property (nonatomic, strong) GJTableViewCell4 *cell4;

@end

然后将这个CustomTableView生成实例add到界面上去吧

    self.tableView = [[CustomTableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
    [self.view addSubview:self.tableView];

run一下看看效果

Delegate & DataSource

Cell Height

默认情况下,GJStaticTableView会利用FDTemplateLayoutCell计算Cell的高度并自动设置,你只需按照Autolayout的约束规范将Cell内的元素与Cell进行约束,将其撑起高度即可。
某些情况下,如果你希望自己给Cell设定一个静态高度,那么你可以让这个Cell实现GJStaticCellPotocol中的gj_rowHeight方法,返回一个高度值即可。

#import "GJTableViewCell1.h"

@implementation GJTableViewCell1

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        //Code ...
    }
    return self;
}

- (CGFloat)gj_rowHeight {
    return 40;
}

@end

如果这还不能满足你的要求,那么你可以设置tableView的delegate来自己实现tableView:heightForRowAtIndexPath:方法。

@interface ViewController () <UITableViewDelegate>
@property (nonatomic, strong) CustomTableView *tableView;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.tableView = [[CustomTableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
    self.tableView.delegate = self;
    [self.view addSubview:self.tableView];
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    //custom height
}

Other delegate & dataSource

如果你想使用其他UITableView的特性,你只需向上面一样设置好delegate和dataSource,
注意:在GJStaticTableView内,我们使用了4个方法:

  • numberOfSectionsInTableView:

  • tableView:heightForRowAtIndexPath:

  • tableView:numberOfRowsInSection:

  • tableView:cellForRowAtIndexPath:

你需要注意他们对你自定义代理方法的影响

github地址:https://github.com/GJGroup/GJStaticTableView
code4app

相关源码推荐:

    我来说两句
    *滑动验证:
    所有评论(7)
    hellokenken 2017-3-18 14:14:30
    code4app好的内容真的很多~赞
    回复
    BlueManlove 2017-3-18 14:14:32
    好好 学习了 确实不错
    回复
    AlonMessi 2017-3-18 14:14:57
    支持,感谢,祝code4app越来越好~
    回复
    kengsir 2017-3-18 14:15:07
    帮帮顶顶!!
    回复
    littleRed 2017-3-18 14:17:53
    学习...学习...
    回复
    phoiu 2017-3-18 14:17:58
    我是来学习的
    回复
    王颖博 5 天前
    感谢分享,Code4App有你更精彩
    回复
    fungxxxx 5 天前
    楼主威武啊,Code4App有你更给力!
    回复
    提取码:  下载次数:2 状态:已购或VIP 售价:0(原价:10)金钱 下载权限:初级码农 
    149 0 2
    相关代码
      联系我们
      首页/微信公众账号投稿

      帖子代码编辑/版权问题

      QQ:435399051,742864542

      如何获得代码达人称号?

      代码贡献英雄榜
      用户名 下载数
      代码分类
      通过邮件订阅最新 Code4App 信息
      上一条 /4 下一条
      联系我们
      关闭
      合作电话:
      13802416937
      Email:
      435399051@qq.com
      商务市场合作/投稿
      问题反馈及帮助
      联系我们

      广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

      快速回复 返回顶部 返回列表