tabViewCell點擊顯示 更多內容

1.創(chuàng)建model

@interface Model : NSObject

@property (nonatomic, strong) NSString *title;

@property (nonatomic, assign) BOOL isOpen;

@property (nonatomic, assign) CGFloat cellHeight;

#import "Model.h"

@implementation Model

- (void)setTitle:(NSString*)title

{

? ? _title= title;

? ?CGFloat w = [UIScreen mainScreen].bounds.size.width - 24;

? ? CGFloath =MAXFLOAT;

? ? NSDictionary *dict = @{NSFontAttributeName: [UIFont systemFontOfSize:16]};

? ? CGFloat height = [title boundingRectWithSize:CGSizeMake(w, h) options:NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil].size.height;

? ? _cellHeight= height +24;

}

2自定義cell

#import

#import "Model.h"

NS_ASSUME_NONNULL_BEGIN

@interfaceTableViewCell :UITableViewCell

@property (nonatomic, strong)Model *model;

@property? (nonatomic,copy)void(^moreButtonAction)(UIButton*button);

#import "TableViewCell.h"

#import "Masonry/Masonry.h"

@interface? TableViewCell()

@property (nonatomic, strong) UILabel *contentL;

@property (nonatomic, strong)UIButton? *moreButton;

@end

@implementation TableViewCell

- (void)awakeFromNib {

? ? [super awakeFromNib];

? ? // Initialization code

}

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

{

? ? if(self= [superinitWithStyle:stylereuseIdentifier:reuseIdentifier]) {

? ? ? ? self.clipsToBounds = YES;

? ? ? ? self.selectionStyle = UITableViewCellSelectionStyleNone;

? ? ? ? [selflayout];

? ? }

? ? return self;

}

- (void)layout

{

? ? [self.contentL mas_remakeConstraints:^(MASConstraintMaker *make) {

? ? ? ? make.bottom.mas_equalTo(-12);

? ? ? ? make.left.top.mas_equalTo(12);

? ? ? ? make.right.mas_equalTo(-12);

? ? }];


//? ? [self.moreButton mas_remakeConstraints:^(MASConstraintMaker *make) {

//? ? ? ? make.bottom.mas_equalTo(-12);

//? ? ? ? make.right.mas_equalTo(-12);

//? ? }];

}

- (UIButton*)moreButton{

? ? if(_moreButton==nil) {

? ? ? ? _moreButton = [UIButton buttonWithType:UIButtonTypeCustom];

? ? ? ? [_moreButton setTitle:@"更多" forState:UIControlStateNormal];

? ? ? ? [_moreButton setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];

? ? ? ? [_moreButton addTarget:self action:@selector(moreButtonAction:) forControlEvents:UIControlEventTouchUpInside];

? ? ? ? [self.contentView? addSubview:_moreButton];

? ? }

? ? return _moreButton;

}

- (UILabel*)contentL

{

? ? if(!_contentL) {

? ? ? ? _contentL= [[UILabelalloc]init];

? ? ? ? _contentL.frame = CGRectMake(0, 0, self.contentView.bounds.size.width, 0);

? ? ? ? _contentL.lineBreakMode = NSLineBreakByTruncatingTail;

? ? ? ? _contentL.numberOfLines = 4;

? ? ? ? [self.contentView addSubview:_contentL];

? ? }

? ? return _contentL;

}

- (void)setModel:(Model*)model{

? ? _model= model;

? ? self.contentL.text= model.title;

? ? if(model.isOpen) {

? ? ? ? self.contentL.numberOfLines=NSIntegerMax;

? ? }else{

? ? ? ? self.contentL.numberOfLines=4;

? ? }

}

- (void)moreButtonAction:(UIButton*)moreButton{

? ? if (self.moreButtonAction) {

? ? ? ? self.moreButtonAction(moreButton);

? ? }

}

3.viewConrtroller的內容

import "ViewController.h"

#import "Model.h"

#import "TableViewCell.h"

@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>

@property (nonatomic, strong)UITableView *tableView;

@property (nonatomic, strong) NSMutableArray *testDataArray;

@end

@implementation ViewController

- (void)viewDidLoad {

? ? [super viewDidLoad];

? ? [self.view addSubview:self.tableView];

? ? // Do any additional setup after loading the view, typically from a nib.

}

- (NSMutableArray*)testDataArray

{

? ? if (!_testDataArray) {

? ? ? ? NSArray *array = @[@"騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務院溺、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺火的。騰訊網(wǎng)下設新聞君仆、科技痪欲、財經(jīng)妻献、娛樂慌盯、體育掌挚、汽車、時尚.騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務征唬、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺捌显。騰訊網(wǎng)下設新聞、科技总寒、財經(jīng)扶歪、娛樂、體育摄闸、汽車击罪、時尚.騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺贪薪。騰訊網(wǎng)下設新聞、科技眠副、財經(jīng)画切、娛樂、體育囱怕、汽車霍弹、時尚.騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺娃弓。騰訊網(wǎng)下設新聞典格、科技、財經(jīng)台丛、娛樂耍缴、體育、汽車挽霉、時尚.",

?? ? ? ? ? ? ? ? ? ? ? ? ? @"騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務防嗡、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺。騰訊網(wǎng)下設新聞侠坎、科技蚁趁、財經(jīng)、娛樂实胸、體育他嫡、汽車番官、時尚.騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺钢属。騰訊網(wǎng)下設新聞徘熔、科技、財經(jīng)署咽、娛樂近顷、體育、汽車宁否、時尚.騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務窒升、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺。騰訊網(wǎng)下設新聞慕匠、科技饱须、財經(jīng)、娛樂台谊、體育蓉媳、汽車、時尚.騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務锅铅、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺酪呻。騰訊網(wǎng)下設新聞、科技盐须、財經(jīng)玩荠、娛樂、體育贼邓、騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務阶冈、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺。騰訊網(wǎng)下設新聞塑径、科技女坑、財經(jīng)、娛樂统舀、體育匆骗、汽車、時尚.騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務誉简、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺绰筛。騰訊網(wǎng)下設新聞、科技描融、財經(jīng)铝噩、娛樂、體育、汽車骏庸、時尚.騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務毛甲、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺。騰訊網(wǎng)下設新聞具被、科技玻募、財經(jīng)、娛樂一姿、體育七咧、汽車、時尚.騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務叮叹、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺艾栋。騰訊網(wǎng)下設新聞、科技蛉顽、財經(jīng)蝗砾、娛樂、體育携冤、汽車",

?? ? ? ? ? ? ? ? ? ? ? ? ? @"騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務悼粮、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺。騰訊網(wǎng)下設新聞曾棕、科技扣猫、財經(jīng)、娛樂翘地、體育苞笨、汽車、時尚.騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務子眶、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺。騰訊網(wǎng)下設新聞序芦、科技臭杰、財經(jīng)、娛樂谚中、體育渴杆、汽車、時尚.騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直",

?? ? ? ? ? ? ? ? ? ? ? ? ? @"騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務宪塔、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺磁奖。騰訊網(wǎng)下設新聞、科技某筐、財經(jīng)比搭、娛樂、體育南誊、汽車身诺、時尚.騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務蜜托、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺。騰訊網(wǎng)下設新聞霉赡、科技橄务、財經(jīng)、娛樂穴亏、體育蜂挪、汽車、時尚.騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務嗓化、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺棠涮。騰訊網(wǎng)下設新聞、科技蟆湖、財經(jīng)故爵、娛樂、體育隅津、汽車诬垂、時尚.騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺伦仍。騰訊網(wǎng)下設新聞结窘、科技、財經(jīng)充蓝、娛樂隧枫、體育、汽車",

?? ? ? ? ? ? ? ? ? ? ? ? ? @"騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務谓苟、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺官脓。騰訊網(wǎng)下設新聞、科技涝焙、財經(jīng)卑笨、娛樂、體育仑撞、汽車赤兴、時尚.騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺隧哮。騰訊網(wǎng)下設新聞",

?? ? ? ? ? ? ? ? ? ? ? ? ? @"騰訊網(wǎng)從2003年創(chuàng)立至今,已經(jīng)成為集新聞信息,區(qū)域垂直生活服務桶良、社會化媒體資訊和產(chǎn)品為一體的互聯(lián)網(wǎng)媒體平臺。汽車",

? ? ? ? ? ? ? ? ? ? ? ? ? ];

? ? ? ?NSMutableArray *tempArray = [NSMutableArray array];

? ? ? ? for(NSString*strinarray) {

? ? ? ? ? ? Model*model = [Modelnew];

? ? ? ? ? ? model.title= str;

? ? ? ? ? ? model.isOpen=NO;

? ? ? ? ? ? [tempArrayaddObject:model];

? ? ? ? }

? ? ? ? _testDataArray= tempArray;

? ? }

? ? return _testDataArray;

}

#pragma mark UITableViewDataSource

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

{

? ? return self.testDataArray.count;

}

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

{

? ? TableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([TableViewCell class])];

? ? Model*model =self.testDataArray[indexPath.row];

? ? cell.model= model;


//? ? cell.moreButtonAction = ^(UIButton * _Nonnull button) {

//? ? ? ? TableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

//? ? ? ? [button setTitle:@"更多" forState:UIControlStateNormal];

//? ? ? ? cell.model.isOpen = !cell.model.isOpen;

//? ? ? ? [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];

//? ? };

? ? returncell;

}

- (void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath

{

? ? TableViewCell*cell = [tableViewcellForRowAtIndexPath:indexPath];

? ? cell.model.isOpen = !cell.model.isOpen;

? ? [tableViewreloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];

}

- (CGFloat)tableView:(UITableView*)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath*)indexPath

{

? ? Model*model =self.testDataArray[indexPath.row];

? ? returnmodel.cellHeight;

}

#pragma mark--UITableViewDelegate,UITableViewDataSource

- (UITableView*)tableView{

? ? if(_tableView==nil) {

? ? ? ? _tableView = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStylePlain];

? ? ? ? _tableView.delegate=self;

? ? ? ? _tableView.dataSource=self;

? ? ? ? [_tableView? registerClass:[TableViewCell class] forCellReuseIdentifier:NSStringFromClass([TableViewCell class])];

? ? }

? ? return _tableView;

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末沮翔,一起剝皮案震驚了整個濱河市陨帆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖歧譬,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件岸浑,死亡現(xiàn)場離奇詭異,居然都是意外死亡瑰步,警方通過查閱死者的電腦和手機矢洲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缩焦,“玉大人读虏,你說我怎么就攤上這事≡模” “怎么了盖桥?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長题翻。 經(jīng)常有香客問我揩徊,道長,這世上最難降的妖魔是什么嵌赠? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任塑荒,我火速辦了婚禮,結果婚禮上姜挺,老公的妹妹穿的比我還像新娘齿税。我一直安慰自己,他們只是感情好炊豪,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布凌箕。 她就那樣靜靜地躺著,像睡著了一般词渤。 火紅的嫁衣襯著肌膚如雪牵舱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天缺虐,我揣著相機與錄音芜壁,去河邊找鬼。 笑死志笼,一個胖子當著我的面吹牛,可吹牛的內容都是我干的把篓。 我是一名探鬼主播纫溃,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼韧掩!你這毒婦竟也來了紊浩?” 一聲冷哼從身側響起桑谍,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎允乐,沒想到半個月后隙袁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡口芍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年箍铲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鬓椭。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡颠猴,死狀恐怖,靈堂內的尸體忽然破棺而出小染,到底是詐尸還是另有隱情翘瓮,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布裤翩,位于F島的核電站资盅,受9級特大地震影響,放射性物質發(fā)生泄漏踊赠。R本人自食惡果不足惜呵扛,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望臼疫。 院中可真熱鬧择份,春花似錦、人聲如沸烫堤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鸽斟。三九已至拔创,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間富蓄,已是汗流浹背剩燥。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留立倍,地道東北人灭红。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像口注,于是被迫代替她去往敵國和親变擒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內容

  • iOS_autoLayout_Masonry 概述 Masonry是一個輕量級的布局框架與更好的包裝AutoLay...
    指尖的跳動閱讀 1,162評論 1 4
  • 一寝志、前言 關于蘋果的布局一直是我比較糾結的問題娇斑,是寫代碼來控制布局策添,還是使用storyboard來控制布局呢?以前...
    iplaycodex閱讀 2,449評論 0 1
  • 編寫iOS應用UI的方式大概有兩種毫缆,一種是Storyboard/Xib唯竹,另一種是手寫代碼。采用Storyboard...
    老郭_ce6b閱讀 1,581評論 0 4
  • (一)Masonry介紹 Masonry是一個輕量級的布局框架 擁有自己的描述語法 采用更優(yōu)雅的鏈式語法封裝自動布...
    木易林1閱讀 2,334評論 0 3
  • Masonry是一個輕量級的布局框架苦丁,擁有自己的描述語法浸颓,采用更優(yōu)雅的鏈式語法封裝自動布局,簡潔明了并具有高可讀性...
    3dcc6cf93bb5閱讀 1,765評論 0 1