精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

iOS開發(fā)之帶你5分鐘封裝一個時間軸

移動開發(fā)
時間軸在一些app中用的場景還不少,原理實現(xiàn)起來較為簡單,下面我們就來動手封裝一個比較常用的時間軸

時間軸在一些app中用的場景還不少,原理實現(xiàn)起來較為簡單,下面我們就來動手封裝一個比較常用的時間軸,具體效果看下圖:

 


Qinz

1.首先我們創(chuàng)建一個UIView,在上面放一個tableView,聲明一個方法,傳遞兩個參數(shù),***個參數(shù)是需要將該時間軸放在哪個視圖上,第二個參數(shù)是傳遞數(shù)據(jù)源,頭文件下:

  1. #import <UIKit/UIKit.h> 
  2. @interface QinzTimeLine : UIView 
  3. @property (nonatomic, strong) NSArray *titleArr; 
  4. -(void)setSuperView:(UIView*)superView DataArr:(NSMutableArray*)dataArr; 
  5. @end 

2.我們再來看看.m文件,也就是最簡單的tableView的應用,這里有一個 [self.tableView cellHeightForIndexPath:indexPath model:model keyPath:@"model" cellClass:[TimeLineCell class]contentViewWidth:self.frame.size.width]方法是用到了SDAutoLayout這個庫用來自動計算cell高度的

  1. #import "QinzTimeLine.h" 
  2. #import "SDAutoLayout.h" 
  3. #import "TimeLineCell.h" 
  4. @interface QinzTimeLine ()<UITableViewDelegate,UITableViewDataSource> 
  5. @property (nonatomic, strong) UITableView *tableView; 
  6. @property (nonatomic, strong) NSMutableArray *dataArr; 
  7. @end 
  8. @implementation QinzTimeLine 
  9. -(void)setSuperView:(UIView *)superView DataArr:(NSMutableArray *)dataArr{ 
  10.     self.frame = superView.bounds; 
  11.     [superView addSubview:self]; 
  12.     [self setUp]; 
  13.     self.dataArr = dataArr; 
  14. -(void)setUp{ 
  15.     self.tableView = [[UITableView alloc]init]; 
  16.     self.tableView.delegate = self; 
  17.     self.tableView.dataSource = self; 
  18.     self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 
  19.     [self addSubview:self.tableView]; 
  20.     self.tableView.sd_layout.topEqualToView(self).leftEqualToView(self).bottomEqualToView(self).rightEqualToView(self); 
  21. #pragma mark -- tableView的代理方法 
  22. #pragma mark -- 返回多少組 
  23. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
  24.     return 1; 
  25. #pragma mark -- 每組返回多少個 
  26. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
  27.     return self.dataArr.count
  28. #pragma mark -- 每個cell的高度 
  29. - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
  30.     TimeLineModel*model = self.dataArr[indexPath.row]; 
  31.     return [self.tableView cellHeightForIndexPath:indexPath model:model keyPath:@"model" cellClass:[TimeLineCell class] contentViewWidth:self.frame.size.width]; 
  32. #pragma mark -- 每個cell顯示的內容 
  33. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
  34.     TimeLineCell*cell = [TimeLineCell timeLineCell:tableView]; 
  35.     if (indexPath.row == 0) { 
  36.         cell.lineView.sd_layout.topSpaceToView(cell.pointView, 0); 
  37.         cell.lineView.backgroundColor = [UIColor grayColor]; 
  38.         cell.pointView.backgroundColor = [UIColor redColor]; 
  39.     }else
  40.         cell.lineView.sd_layout.topSpaceToView(cell.contentView, 0); 
  41.         cell.pointView.backgroundColor = [UIColor grayColor]; 
  42.         cell.lineView.backgroundColor = [UIColor grayColor]; 
  43.     } 
  44.     cell.model = self.dataArr[indexPath.row]; 
  45.     cell.selectionStyle = UITableViewCellSelectionStyleNone; 
  46.     return cell; 
  47. #pragma mark -- 選擇每個cell執(zhí)行的操作 
  48. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
  49.     [tableView deselectRowAtIndexPath:indexPath animated:NO]; 

3.關鍵在于tableViewCell布局,采用了Xib,方便對樣式進行設置,布局依然采用的是SDAutoLayout這個庫

 


圖片.png

4.看下布局代碼,這里對titleLB的布局做高度自適應,及設置autoHeightRatio為0即可,然后我們直接在設置模型中調用 [self setupAutoHeightWithBottomView:self.titleLB bottomMargin:0]就自動完成了高度自適應,是不是很方便

  1. - (void)awakeFromNib { 
  2.     [super awakeFromNib]; 
  3.     self.pointView.sd_layout.topSpaceToView(self.contentView, 20).leftSpaceToView(self.contentView, 5).widthIs(8).heightEqualToWidth(); 
  4.     self.pointView.sd_cornerRadius = @(4); 
  5.     self.lineView.sd_layout.topEqualToView(self.contentView).centerXEqualToView(self.pointView).widthIs(1).bottomSpaceToView(self.contentView, 0); 
  6.     self.ttimeLB.sd_layout.centerYEqualToView(self.pointView).leftSpaceToView(self.pointView, 10).rightSpaceToView(self.contentView, 10).heightIs(20); 
  7.     self.titleLB.sd_layout.topSpaceToView(self.ttimeLB, 15).leftEqualToView(self.ttimeLB).rightSpaceToView(self.contentView, 10).autoHeightRatio(0); 
  8. -(void)setModel:(TimeLineModel *)model{ 
  9.     _model = model; 
  10.     self.titleLB.text=  model.title; 
  11.     self.ttimeLB.text = model.time
  12.     [self setupAutoHeightWithBottomView:self.titleLB bottomMargin:0]; 

5.到此,封裝完畢,***我們來看看控制器調用代碼

  1. - (void)viewDidLoad { 
  2.     [super viewDidLoad]; 
  3.     self.automaticallyAdjustsScrollViewInsets = YES; 
  4.     self.timeLine = [[QinzTimeLine alloc]init]; 
  5.     [self setData]; 
  6.     [self.timeLine setSuperView:self.view DataArr:self.dataArr]; 

總結:整體主要采用tableView進行布局,然后讓cell的高度自適應,需要注意的地方就是Cell中時間軸中的線條需要保持連貫,所以需要對***個cell進行判斷,讓線條剛好與原點連接。

***,附上demo供參考:https://gitee.com/Qinz_323/qinztimeline

我是Qinz,希望我的文章對你有幫助。

責任編輯:未麗燕 來源: 簡書
相關推薦

2020-10-30 15:04:16

開發(fā)技能代碼

2021-06-07 12:08:06

iOS Python API

2020-09-14 11:30:26

HTTP3運維互聯(lián)網(wǎng)

2020-11-23 16:23:59

CSS設計技術

2012-06-28 10:26:51

Silverlight

2025-07-14 08:47:39

2025-03-13 06:22:59

2020-06-30 10:45:28

Web開發(fā)工具

2022-06-17 08:05:28

Grafana監(jiān)控儀表盤系統(tǒng)

2021-04-30 16:23:58

WebRTC實時音頻

2021-06-02 09:12:04

App自動化測試測試自動化

2018-11-08 13:53:15

Flink程序環(huán)境

2010-12-10 17:23:56

IBMIaaS

2021-01-06 05:23:15

ServiceMesh網(wǎng)絡阿帕網(wǎng)

2016-09-12 17:28:45

云存儲應用軟件存儲設備

2019-12-23 16:42:44

JavaScript前端開發(fā)

2021-10-19 07:27:08

HTTP代理網(wǎng)絡

2011-07-11 09:58:52

2014-04-15 11:19:19

2020-10-13 18:22:58

DevOps工具開發(fā)
點贊
收藏

51CTO技術棧公眾號

神马午夜电影一区二区三区在线观看| 国产 欧美 在线| 精品国产丝袜高跟鞋 | 亚洲激情在线观看视频| 在线观看免费版| 国产激情视频一区二区三区欧美 | 日韩免费福利视频| 国产精品午夜春色av| 5g国产欧美日韩视频| 国产精品9191| 欧美电影免费观看高清| 精品美女在线观看| 免费一级特黄录像| sm在线观看| 国产精品少妇自拍| 欧美精品第1页| 精品网站在线看| 一级aaaa毛片| 激情婷婷综合| 日韩免费福利电影在线观看| 凹凸日日摸日日碰夜夜爽1| 18网站在线观看| 久久久.com| 国产精品日韩一区二区免费视频| 中文字幕观看在线| 亚洲视频1区| 久久国产精品久久久久久| 在哪里可以看毛片| 美腿丝袜亚洲图片| 亚洲欧美日韩电影| 欧美在线播放一区| 好吊视频一二三区| 国产一区二区毛片| 中文国产成人精品| 日韩av一二区| 澳门久久精品| 91精品国产免费久久综合| 久久精品.com| 免费看男女www网站入口在线 | 日韩美女一级片| 亚洲最大av| 欧美一区二区精品在线| 黄色片在线免费| 免费成人在线电影| 黄网站色欧美视频| 综合一区中文字幕| 99免在线观看免费视频高清| 久久综合狠狠综合| 久久久久久国产精品免费免费| 国产污视频在线观看| 亚洲色图欧美| 在线视频日韩精品| 日本免费www| 欧美最新另类人妖| 一区二区三区久久精品| 老头吃奶性行交视频| 国产理论在线| 黄色成人av在线| 国产精品秘入口18禁麻豆免会员| 欧美韩日亚洲| 亚洲一区二区在线免费看| 成人免费在线视频播放| 日韩精品卡一| 亚洲一区二区在线观看视频| 国产av熟女一区二区三区| 欧美人体视频xxxxx| 亚洲资源中文字幕| 日本a在线免费观看| 爱啪啪综合导航| 日韩欧美国产视频| 欧美一级裸体视频| 欧美一级做a| 91精品福利在线一区二区三区| 激情在线观看视频| 美女日批视频在线观看| 亚洲一级二级在线| 成人av一级片| 91成人在线| 欧美久久婷婷综合色| 黑人性生活视频| 极品国产人妖chinesets亚洲人妖| 亚洲国产精品va在线看黑人动漫| 大地资源二中文在线影视观看| 日韩高清一级| 综合av色偷偷网| 欧美激情一区二区视频| 蜜桃国内精品久久久久软件9| 精品视频在线看| 超碰成人在线播放| 一区二区在线视频观看| 精品视频中文字幕| 中国美女黄色一级片| 午夜亚洲福利| 欧美专区福利在线| 夜夜嗨aⅴ一区二区三区| 懂色av一区二区三区免费观看 | 亚洲一级免费观看| 亚洲精品午夜| 国产一区二区激情| 特黄特色免费视频| 亚洲丝袜美腿一区| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲一区二区91| 日本免费在线视频不卡一不卡二| av成人免费观看| yiren22综合网成人| 亚洲一区二区三区四区在线观看| 久久人妻精品白浆国产| 麻豆一二三区精品蜜桃| 亚洲欧美制服中文字幕| avove在线播放| 久久综合婷婷| 国产精品二区在线观看| 一级黄色片在线看| 成人综合在线视频| 亚洲国产精品久久久久久女王| 性xxxx视频| 亚洲私人影院在线观看| 日韩手机在线观看视频| 亚洲va欧美va人人爽成人影院| 国产亚洲精品91在线| 国产精品第一页在线观看| 国内成人自拍视频| 日本高清久久一区二区三区| 久草在线视频资源| 欧美猛男超大videosgay| 久久国产精品影院| 一区二区自拍| 91中文字精品一区二区| 亚洲视频tv| 欧美日韩国产精品专区| 在线视频一二区| 日韩在线观看| 国产成人免费91av在线| 日韩一二三四| 亚洲成av人片一区二区梦乃 | 成人午夜视频福利| 先锋影音男人资源| 欧美大陆国产| 最近免费中文字幕视频2019| 亚洲国产精品无码久久久| 99久久er热在这里只有精品66| www.18av.com| 国产精品亚洲四区在线观看| 综合网中文字幕| 乱子伦一区二区三区| 99re成人在线| 国产视频九色蝌蚪| 久久久亚洲欧洲日产| 性色av一区二区三区在线观看| 精品免费久久久| 国产福利视频一区二区三区| 99热这里只有精品7| 国产精品麻豆| 九九精品视频在线| www.激情五月| 亚洲一区二区三区免费视频| 欧美xxxx日本和非洲| 亚洲私人影院| 国产欧美日韩在线播放| 136福利第一导航国产在线| 精品国免费一区二区三区| 久久视频免费看| 久久一区激情| 日韩欧美99| 久久青草免费| 欧美老少做受xxxx高潮| 性欧美8khd高清极品| 亚洲国产成人高清精品| 中出视频在线观看| 天堂va蜜桃一区二区三区漫画版 | 国产中文在线| 精品视频一区二区不卡| 五月综合色婷婷| 亚洲永久视频| 日本黑人久久| 亚洲青青一区| 亚洲精品一区二区久| 久久亚洲精品石原莉奈| 国产精品丝袜黑色高跟| 久久久福利影院| 精品91在线| 欧洲国产精品| 亚洲日本va| 青青久久av北条麻妃黑人| av电影在线观看| 日韩一级完整毛片| 精品免费囯产一区二区三区| 日本一区二区不卡视频| 一卡二卡三卡四卡五卡| 国产一区二区你懂的| 亚洲v国产v在线观看| 日韩在线成人| 国产成人精品在线| 亚洲大胆人体大胆做受1| 亚洲精品色婷婷福利天堂| 国产原创中文av| 欧美日韩国产专区| 97在线观看免费高| 久久综合资源网| 中文字幕55页| 水野朝阳av一区二区三区| 91嫩草国产丨精品入口麻豆| 香蕉久久精品日日躁夜夜躁| 成人亚洲欧美一区二区三区| 粉嫩av一区| 日韩精品一区国产麻豆| 久久精品视频2| 亚洲一区二区黄色| 欧美人与禽zoz0善交| 成人av在线影院| 五月六月丁香婷婷| 久久性色av| 欧美 日韩 亚洲 一区| 91精品1区| 日韩视频专区| 欧美日韩一本| 高清av免费一区中文字幕| 久久精品超碰| 国产91色在线播放| 国产自产自拍视频在线观看| 久久视频免费在线播放| 久久米奇亚洲| 日韩精品有码在线观看| 亚洲第一成年人网站| 欧美日韩精品高清| 国产污视频网站| 图片区小说区区亚洲影院| 免费在线观看国产精品| 亚洲婷婷综合色高清在线| 免费黄色在线网址| 国产亚洲欧美中文| 国产人妻人伦精品1国产丝袜| 国产一区二区三区不卡在线观看 | 国产精品一区专区| 99sesese| 免费亚洲电影在线| 中文字幕第21页| 日韩电影在线观看网站| 午夜精品一区二区三区四区| 欧美国产不卡| 国产亚洲一区在线播放| 51精品国产| 亚洲精品欧美日韩| 国产色99精品9i| 亚洲综合色av| 午夜视频一区二区在线观看| 亚洲xxxxx性| 国产精品国产亚洲精品| 91在线直播亚洲| 久久久久久久久成人| 97国产超碰| jizz久久精品永久免费| 成人永久免费| 欧美日韩看看2015永久免费| 麻豆蜜桃91| 国产欧美日韩在线一区二区| 日本在线高清视频一区| 日本精品三区| a级黄色片网站| 欧美黄色一区| 欧美人成在线观看| 国产传媒欧美日韩成人精品大片| 久久国产日韩欧美| 久久最新网址| 亚洲精品中文字幕在线| 希岛爱理av一区二区三区| 警花观音坐莲激情销魂小说| 欧美va天堂在线| 九一国产精品视频| 久久一二三四| www.cao超碰| 国产精品99久久久久久宅男| 亚洲无人区码一码二码三码| 91蝌蚪porny| 欧美一区二区三区粗大| 亚洲情趣在线观看| 欧美亚洲天堂网| 91国偷自产一区二区开放时间| 一二三四区在线| 亚洲精品99999| yw在线观看| 欧美激情性做爰免费视频| 密臀av在线播放| 国产日韩欧美一二三区| 国产成人aa在线观看网站站| 欧美午夜视频在线| 国产一区在线电影| 欧美一区二区三区在线免费观看| 日本电影一区二区| 韩日视频在线观看| 日韩二区三区四区| 中文字幕久久久久久久| 久久免费国产精品| 欧美第一页在线观看| 狠狠久久五月精品中文字幕| 一二三四区视频| 日韩精品在线免费观看视频| 欧美成人精品一区二区男人看| 久久久久久一区二区三区 | 91国产丝袜在线播放| 国产精品国产三级国产普通话对白| 精品第一国产综合精品aⅴ| 风间由美一区| 18久久久久久| 国产精品麻豆| 日韩高清国产一区在线观看| 亚洲午夜91| 亚洲黄色av片| 久久er99精品| 黄色a一级视频| 亚洲免费在线看| 中文字字幕在线中文乱码| 亚洲精品mp4| 在线中文字幕电影| 国产精品亚洲自拍| 免费观看久久av| 久久艹国产精品| 麻豆一区二区99久久久久| 亚洲av无码一区二区三区网址 | 国产女主播喷水视频在线观看| 日韩欧美国产不卡| 精品黄色免费中文电影在线播放| 国产成人av网| 日韩高清在线免费观看| 日韩久久久久久久久久久久| 精品一区免费av| 日本精品久久久久中文| 色综合久久综合网欧美综合网| 蜜桃在线一区二区| 久99久在线视频| 国产精品日韩精品在线播放| 亚洲欧美丝袜| 秋霞午夜av一区二区三区 | 亚洲色图在线播放| 蜜臀尤物一区二区三区直播| 国产丝袜一区二区三区免费视频| 97人人在线视频| 国产三区精品| 在线精品亚洲| 亚洲激情 欧美| 亚洲国产cao| 婷婷丁香一区二区三区| 久久久在线观看| 国产精品45p| 国产在线播放观看| 成人高清免费观看| 国产一级一级片| 亚洲第一色中文字幕| 91破解版在线观看| 精品综合在线| 天堂影院一区二区| 成熟人妻av无码专区| 欧美色视频在线| 男人天堂久久久| 91久久综合亚洲鲁鲁五月天| 自产国语精品视频| 国产av一区二区三区传媒| 亚洲午夜久久久久久久久电影院| 亚洲欧美另类视频| 欧美夜福利tv在线| 国产乱码精品一区二区亚洲 | 99久久精品国产一区二区三区| 五月天综合在线| 精品在线小视频| 成人做爰免费视频免费看| 亚洲一区三区电影在线观看| 伊人久久大香线蕉综合四虎小说| 久久综合在线观看| 性做久久久久久久免费看| 偷拍精品一区二区三区| 国产v综合ⅴ日韩v欧美大片| 成人激情免费视频| 国产又粗又猛大又黄又爽| 亚洲成人av资源| 精华区一区二区三区| 国产精选久久久久久| 欧美日本三区| www.天天射.com| 亚洲男人的天堂网| 无码精品视频一区二区三区| 人人澡人人澡人人看欧美| 91麻豆国产自产在线观看亚洲 | 91啪九色porn原创视频在线观看| 天天干在线播放| 久久天天躁狠狠躁夜夜av| 黄色美女久久久| 亚洲欧洲日本精品| 亚洲综合视频在线| 黄色片在线播放| 91久色国产| 日韩精品福利网| 久久综合久久鬼| 中文字幕在线亚洲| 久久综合五月婷婷| 日本免费色视频| 欧美日韩免费看| 最新国产在线拍揄自揄视频| 免费电影一区| 国产精品18久久久久|