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

2025-05-29 0 77

在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

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 详解iOS tableViewCell自适应高度 第三发类库 https://www.kuaiidc.com/93528.html

相关文章

发表评论
暂无评论