服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - IOS - 详解iOS tableViewCell自适应高度 第三发类库

详解iOS tableViewCell自适应高度 第三发类库

2021-01-16 14:49徒步天涯 IOS

在github中有许多大牛封装好的第三发类库,其中有个自适应cell高度的类库。接下来通过本文给大家介绍iOS tableViewCell自适应高度 第三发类库,需要的朋友参考下

在github中有许多大牛封装好的第三发类库,其中有个自适应cell高度的类库

详解iOS tableViewCell自适应高度 第三发类库

下载地址:https://github.com/gsdios/sdautolayout

model类

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
commentsmodel
#import "jsonmodel.h"
#import "getcommentdata.h"
@interface commentsmodel : jsonmodel
@property(nonatomic,copy)nsarray<getcommentdata> *commentlist;
@end
#import "commentsmodel.h"
@implementation commentsmodel
@end
getcommentdata
#import "jsonmodel.h"
@protocol getcommentdata
@end
@interface getcommentdata : jsonmodel
@property(nonatomic,copy)nsstring *message;
@property(nonatomic,copy)nsstring *nickname;
@property(nonatomic,copy)nsstring *createtimestr;
@end
#import "getcommentdata.h"
@implementation getcommentdata
@end

控制器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#import "commentstableviewcontroller.h"
#import "commentsmodel.h"
#import "commentcell.h"
@interface commentstableviewcontroller ()
@property(nonatomic,strong)nsarray *commentsarray;
@end
@implementation commentstableviewcontroller
-(nsarray *)commentsarray{
if (_commentsarray==nil) {
nsdata *data=[nsdata datawithcontentsoffile:[[nsbundle mainbundle] pathforresource:@"comment_list.json" oftype:nil]];
commentsmodel *commensm=[[commentsmodel alloc]initwithdata:data error:nil];
_commentsarray=commensm.commentlist;
}
return _commentsarray;
}
- (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 1;
}
- (nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section {
return self.commentsarray.count;
}
- (uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath {
static nsstring *id=@"comment";
commentcell *cell=[tableview dequeuereusablecellwithidentifier:id];
if (cell==nil) {
cell=[[commentcell alloc]initwithstyle:uitableviewcellstyledefault reuseidentifier:id];
}
cell.commentdata=self.commentsarray[indexpath.row];
return cell;
}
-(cgfloat)tableview:(uitableview *)tableview heightforrowatindexpath:(nsindexpath *)indexpath{
return [self cellheightforindexpath:indexpath cellcontentviewwidth:[self cellcontentviewwith]];
}
-(cgfloat)cellcontentviewwith{
cgfloat width=[uiscreen mainscreen].bounds.size.width;
if ([uiapplication sharedapplication].statusbarorientation != uiinterfaceorientationportrait && [[uidevice currentdevice].systemversion floatvalue] < 8) {
width = [uiscreen mainscreen].bounds.size.height;
}
return width;
}
@end

具体自定义cell的代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#import <uikit/uikit.h>
@class getcommentdata;
@interface commentcell : uitableviewcell
@property(nonatomic,strong)getcommentdata *commentdata;
@property(nonatomic,strong)uilabel *namelabel;
@property(nonatomic,strong)uilabel *titlelabel;
@property(nonatomic,strong)uilabel *datelabel;
@end
#import "commentcell.h"
#import "commentsmodel.h"
@implementation commentcell
-(void)setcommentdata:(getcommentdata *)commentdata{
_commentdata=commentdata;
_titlelabel.text=commentdata.message;
_datelabel.text=commentdata.createtimestr;
_namelabel.text=commentdata.nickname;
}
- (instancetype)initwithstyle:(uitableviewcellstyle)style reuseidentifier:(nsstring *)reuseidentifier
{
self = [super initwithstyle:style reuseidentifier:reuseidentifier];
if (self) {
[self setup];
}
return self;
}
-(void)setup{
_namelabel=[uilabel new];
[self.contentview addsubview:_namelabel];
_namelabel.textcolor=[uicolor colorwithred:0.891 green:0.549 blue:0.073 alpha:1.000];
_namelabel.font=[uifont systemfontofsize:15];
_namelabel.numberoflines=1;
_titlelabel=[uilabel new];
[self.contentview addsubview:_titlelabel];
_titlelabel.textcolor=[uicolor darkgraycolor];
_titlelabel.font=[uifont systemfontofsize:15];
_titlelabel.numberoflines=0;
_datelabel=[uilabel new];
[self.contentview addsubview:_datelabel];
_datelabel.textcolor=[uicolor colorwithred:0.679 green:0.166 blue:0.828 alpha:1.000];
_datelabel.font=[uifont systemfontofsize:15];
_datelabel.numberoflines=1;
cgfloat margin=10;
uiview *contentview=self.contentview;
_namelabel.sd_layout
.leftspacetoview(contentview,margin)
.topspacetoview(contentview,margin)
.rightspacetoview(contentview,margin)
.heightis(20);
_titlelabel.sd_layout
.leftspacetoview(contentview,margin)
.topspacetoview(_namelabel,2)
.rightspacetoview(contentview,margin)
.autoheightratio(0);
_datelabel.sd_layout
.leftspacetoview(contentview,margin)
.topspacetoview(_titlelabel,5)
.heightis(20)
.widthis(150);
[self setupautoheightwithbottomviewsarray:@[_titlelabel,_datelabel,_namelabel] bottommargin:margin];
}
- (void)awakefromnib {
}
- (void)setselected:(bool)selected animated:(bool)animated {
[super setselected:selected animated:animated];
}
@end

 

延伸 · 阅读

精彩推荐
  • IOSiOS中tableview 两级cell的展开与收回的示例代码

    iOS中tableview 两级cell的展开与收回的示例代码

    本篇文章主要介绍了iOS中tableview 两级cell的展开与收回的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    J_Kang3862021-04-22
  • IOSIOS开发之字典转字符串的实例详解

    IOS开发之字典转字符串的实例详解

    这篇文章主要介绍了IOS开发之字典转字符串的实例详解的相关资料,希望通过本文能帮助到大家,让大家掌握这样的方法,需要的朋友可以参考下...

    苦练内功5832021-04-01
  • IOSIOS 屏幕适配方案实现缩放window的示例代码

    IOS 屏幕适配方案实现缩放window的示例代码

    这篇文章主要介绍了IOS 屏幕适配方案实现缩放window的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    xiari5772021-06-01
  • IOSiOS布局渲染之UIView方法的调用时机详解

    iOS布局渲染之UIView方法的调用时机详解

    在你刚开始开发 iOS 应用时,最难避免或者是调试的就是和布局相关的问题,下面这篇文章主要给大家介绍了关于iOS布局渲染之UIView方法调用时机的相关资料...

    windtersharp7642021-05-04
  • IOSiOS通过逆向理解Block的内存模型

    iOS通过逆向理解Block的内存模型

    自从对 iOS 的逆向初窥门径后,我也经常通过它来分析一些比较大的应用,参考一下这些应用中某些功能的实现。这个探索的过程乐趣多多,不仅能满足自...

    Swiftyper12832021-03-03
  • IOS关于iOS自适应cell行高的那些事儿

    关于iOS自适应cell行高的那些事儿

    这篇文章主要给大家介绍了关于iOS自适应cell行高的那些事儿,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的...

    daisy6092021-05-17
  • IOSiOS 雷达效果实例详解

    iOS 雷达效果实例详解

    这篇文章主要介绍了iOS 雷达效果实例详解的相关资料,需要的朋友可以参考下...

    SimpleWorld11022021-01-28
  • IOS解析iOS开发中的FirstResponder第一响应对象

    解析iOS开发中的FirstResponder第一响应对象

    这篇文章主要介绍了解析iOS开发中的FirstResponder第一响应对象,包括View的FirstResponder的释放问题,需要的朋友可以参考下...

    一片枫叶4662020-12-25