亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS實現可以縱向橫向滑動的表格實例代碼

2020-07-26 02:47:12
字體:
來源:轉載
供稿:網友

本文主要給大家介紹了關于iOS實現可以縱向橫向滑動的表格的相關內容,分享出來供大家參考學習,下面來一起看看詳細的介紹:

效果圖

這個效果是今天公司項目里面遇上的,也是第一次遇見這種需求,所以記錄下來,效果如上圖。需求主要是可以實現上下的滑動,并且同時最左側的“線路名稱”這一列在向左滑動的時候是不能跟隨滾動的。這個功能主要是實現用戶可以方便查看關于一下難以看全的列表數據。下面說一下思路。

代碼大體思路

由上面的GIF圖和基本需求描述我們第一個想到的東西就是萬能的tableview,沒錯,這個功能的完成當然離不開tableview,那么tableview應該怎樣發揮它的功力呢,左右側的信息需要對稱,所以在這里我使用了兩個tableview,也就是最左側線路名稱這一列是一個tableview,右側的粉紅色字體這些行是一個tableview。上下滑動兩者關聯是使用scrollview完成的。那接下來就結合代碼簡單說一下,也方便我以后回頭看,哈哈哈。

代碼解析

1、這是需要的原材料,每個變量都有注釋它的功能了,一眼懂。titleTableView是最左側的線路名稱這一列。infoTableView是粉紅色字體這些。contentView是titleTableView和最上方(除了“線路名稱”)這一列內容的superView。

@property (nonatomic, strong) UITableView *titleTableView;//標題TableView@property (nonatomic, strong) UITableView *infoTableView;//內容TableView@property (nonatomic, strong) UIScrollView *contentView;//內容容器@property (nonatomic, strong) NSArray *infoArr;//數組@end@implementation ViewController { CGFloat _kOriginX; CGFloat _kScreenWidth; CGFloat _kScreenHeight;}

2、這是所需要的數據配置,我把里面所有需要的數據都放在數組李典里面了。我比較懶。哈哈哈哈

- (void)configData { _kOriginX = 120; _kScreenWidth = self.view.frame.size.width; _kScreenHeight = self.view.frame.size.height; _infoArr = @[@{@"title":@"出團日期", @"routeName":@"線路名稱一", @"time":@"2015/11/21", @"num":@"20", @"price":@"124.0", @"code":@"DAGSDSASA"},     @{@"title":@"余位", @"routeName":@"線路名稱二", @"time":@"2015/11/21", @"num":@"34", @"price":@"234", @"code":@"TAGDFASFAF"},     @{@"title":@"價格", @"routeName":@"線路名稱三", @"time":@"2015/11/21", @"num":@"12", @"price":@"634", @"code":@"GHGASDAS"},     @{@"title":@"團代號", @"routeName":@"線路名稱四", @"time":@"2015/11/56", @"num":@"54", @"price":@"632", @"code":@"DAADSFAD"}];}

3、分步來看,首先是頭部的,這個titleLabel是最左上角的“線路名稱”這四個字,contentView的配置,上面說了這個contentView的作用的,從它的frame看出來, _contentView = [[UIScrollView alloc] initWithFrame:CGRectMake(_kOriginX, 0, _kScreenWidth - _kOriginX, _kScreenHeight)];它的x是_kOriginX也就是預留的最左側的空間。最上面的一列使用for循環創建出來的label。

//MARK:- 頭部視圖- (void)configTableHeader { UILabel *titleLabel = [self quickCreateLabelWithLeft:0 width:_kOriginX title:@"線路名稱"]; [self.view addSubview:titleLabel]; _contentView = [[UIScrollView alloc] initWithFrame:CGRectMake(_kOriginX, 0, _kScreenWidth - _kOriginX, _kScreenHeight)]; _contentView.delegate = self; _contentView.showsVerticalScrollIndicator = NO; _contentView.showsHorizontalScrollIndicator = NO; _contentView.contentSize = CGSizeMake(400, _kScreenHeight); _contentView.bounces = NO; [self.view addSubview:_contentView]; for (int i = 0; i < _infoArr.count; i++) {  CGFloat x = i * 100;  UILabel *label = [self quickCreateLabelWithLeft:x width:100 title:[[_infoArr objectAtIndex: i] objectForKey:@"title"]];  label.textAlignment = NSTextAlignmentCenter;  [_contentView addSubview:label]; }}

4、那接下來就是配置最左側那一欄和左側粉紅色字體那些行。也就這兩個tableview創建的。

//MARK:- 詳細內容- (void)configInfoView { _titleTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 40, _kOriginX, _kScreenHeight) style:UITableViewStylePlain]; _titleTableView.dataSource = self; _titleTableView.delegate = self; _titleTableView.showsVerticalScrollIndicator = NO; _titleTableView.showsHorizontalScrollIndicator = NO; _titleTableView.separatorStyle = UITableViewCellSeparatorStyleNone; [self.view addSubview:_titleTableView]; _infoTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 40, 400, _kScreenHeight) style:UITableViewStylePlain]; _infoTableView.delegate = self; _infoTableView.dataSource = self; _infoTableView.showsVerticalScrollIndicator = NO; _infoTableView.showsHorizontalScrollIndicator = NO; _infoTableView.separatorStyle = UITableViewCellSeparatorStyleNone; [_contentView addSubview:_infoTableView];}

5、這是tableview的代理方法實現。在cellForRowAtIndexPath這個代理方法中,將兩個tableview的cell分開來寫。

//MARK:- UITableViewDataSource- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return _infoArr.count;}- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1;}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { if (tableView == _titleTableView) {  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"titleTable"];  if (!cell) {   cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"titleTable"];  }  cell.textLabel.textAlignment = NSTextAlignmentCenter;  cell.selectionStyle = UITableViewCellSelectionStyleNone;  cell.textLabel.text = [[_infoArr objectAtIndex:indexPath.row] objectForKey:@"routeName"];  cell.textLabel.textColor = [UIColor lightGrayColor];  cell.textLabel.font = [UIFont systemFontOfSize:14];  if (indexPath.row%2 == 1) {   cell.backgroundColor = [UIColor colorWithRed:218/255.0 green:218/255.0 blue:218/255.0 alpha:1];  } else {   cell.backgroundColor = [UIColor whiteColor];  }  return cell; } else {  NSString *ident = @"InfoCell";  InfoCell *cell = [tableView dequeueReusableCellWithIdentifier:ident];  if (!cell) {   cell = [[[NSBundle mainBundle] loadNibNamed:@"InfoCell" owner:nil options:nil] lastObject];  }  if (indexPath.row%2 == 1) {   cell.backgroundColor = [UIColor colorWithRed:218/255.0 green:218/255.0 blue:218/255.0 alpha:1];  } else {   cell.backgroundColor = [UIColor whiteColor];  }  [cell setDataWithStr:[_infoArr objectAtIndex:indexPath.row]];  return cell; }}//MARK:- UITableViewDelegate- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 40;}- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSLog(@"選中了%@", [_infoArr[indexPath.row] objectForKey:@"routeName"]);}

6、這個方法就是實現上下滑動時候,左側和右側tableview聯動的實現方法。

//MARK:- UIScrollViewDelegate- (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scrollView == _titleTableView) {  [_infoTableView setContentOffset:CGPointMake(_infoTableView.contentOffset.x, _titleTableView.contentOffset.y)]; } if (scrollView == _infoTableView) {  [_titleTableView setContentOffset:CGPointMake(0, _infoTableView.contentOffset.y)]; }}

總結

啊,寫完感覺也是比較簡單,就是基本方法的配合使用,當時想的時候也是沒有能一下想出來,還是自己基本功不好的原因吧。把這個效果的實現記錄在這里,也是為了提醒自己,也就是這個功能比較簡單,但是再怎樣的功能都是靠最基本的東西堆砌的。思想很重要,但是最重要的還是去實現,光想沒有用,人不是靠嘴活的。與君共勉。

代碼地址:https://github.com/irembeu/HorizontalSwipListView.git

本地下載地址:http://xiazai.VeVB.COm/201706/yuanma/ListTableView(VeVB.COm).rar

總結

以上就是這篇文章的全部內容了,希望本文的內容對給各位iOS開發者們能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久999精品免费| 亚洲精品在线视频| 精品亚洲va在线va天堂资源站| 国产亚洲精品久久久久久777| 欧美精品videofree1080p| 色妞色视频一区二区三区四区| 日韩电影第一页| 大伊人狠狠躁夜夜躁av一区| 欧美精品在线播放| 国外成人在线视频| 91亚洲永久免费精品| 久久精品99无色码中文字幕| 在线观看视频亚洲| 91欧美精品午夜性色福利在线| 日韩精品免费在线| 青草青草久热精品视频在线网站| 国产精品一区久久| 黄网站色欧美视频| 久久久欧美一区二区| 91国自产精品中文字幕亚洲| 在线日韩av观看| 精品久久久久久久久久久久久| 一本大道亚洲视频| 中文日韩电影网站| 在线电影中文日韩| 国产视频综合在线| 亚洲第一二三四五区| 国内精品久久久久| 97婷婷大伊香蕉精品视频| 久久免费成人精品视频| 亚洲综合日韩中文字幕v在线| 日本精品一区二区三区在线| 国产亚洲精品日韩| 色综合久久久久久中文网| 日日噜噜噜夜夜爽亚洲精品| 日韩欧美亚洲国产一区| 国产精品天天狠天天看| 亚洲天堂日韩电影| 日韩精品一区二区三区第95| 亚洲高清免费观看高清完整版| 91亚洲国产精品| 在线视频中文亚洲| 亚洲成年人影院在线| 国产精品久久久久久久9999| 久久久精品影院| 欧美大尺度电影在线观看| 久久这里只有精品视频首页| 日韩欧美在线视频| 亚洲欧美日本另类| 欧美成人午夜剧场免费观看| 91免费看国产| 中文字幕精品久久| 亚洲自拍偷拍在线| 亚洲欧美日韩中文在线制服| 97在线视频免费播放| 成人黄色在线播放| 538国产精品一区二区在线| 国产日韩欧美在线视频观看| www.美女亚洲精品| 九九精品在线播放| 亚洲午夜小视频| 日韩最新中文字幕电影免费看| 97超视频免费观看| 国产成人福利夜色影视| 8x拔播拔播x8国产精品| 国产精品久久久久7777婷婷| 在线精品视频视频中文字幕| 日韩成人在线观看| 日本精品免费一区二区三区| 97久久国产精品| 日韩欧美视频一区二区三区| 91网在线免费观看| 亚洲国产精品悠悠久久琪琪| 欧美性精品220| 日韩毛片中文字幕| 日韩电影中文 亚洲精品乱码| 欧美精品www| 国产成人一区二区三区| 久久久久国产精品免费| 国产日韩在线精品av| 国产精品一二三视频| 国产精品天天狠天天看| 久久久久久999| 成人精品视频久久久久| 亚洲一区二区黄| 国产精品久久久一区| 欧美精品九九久久| 91丨九色丨国产在线| 国语自产在线不卡| 国产免费一区二区三区在线观看| 日韩欧美成人精品| 91亚洲精品在线| 亚洲精品国产拍免费91在线| 亚洲男女自偷自拍图片另类| 精品福利在线视频| 国产亚洲精品日韩| 中文字幕亚洲综合久久筱田步美| 日韩精品小视频| 久久久久久有精品国产| 欧美视频在线观看免费网址| 在线视频欧美日韩| 欧美日韩免费区域视频在线观看| 国产成人综合精品| 伊人一区二区三区久久精品| 亚洲激情在线观看| 久久国产一区二区三区| 久久国内精品一国内精品| 亚洲奶大毛多的老太婆| 国产在线观看不卡| 国产精品午夜一区二区欲梦| 国产精品偷伦免费视频观看的| 亚洲福利在线看| 国内精品视频久久| 亚洲电影在线看| 精品一区二区三区四区在线| 成人高h视频在线| 欧美另类极品videosbest最新版本| 91国产高清在线| 国产精品露脸av在线| 精品久久久久久| 国产在线一区二区三区| 久久免费福利视频| 国产精彩精品视频| 亚洲一区二区少妇| 伊人亚洲福利一区二区三区| 日韩经典中文字幕| 高清亚洲成在人网站天堂| 美日韩在线视频| 欧美日韩一区二区免费视频| 亚洲精品在线视频| 亚洲国产小视频在线观看| 久久久精品影院| 国产亚洲欧美日韩美女| 性欧美在线看片a免费观看| 国产脚交av在线一区二区| 欧美激情视频三区| 2019中文字幕在线| 国产精品久久婷婷六月丁香| 久久精品99国产精品酒店日本| 亚洲国产高潮在线观看| 国产日韩在线免费| 亚洲一区亚洲二区| 国产亚洲精品久久久久动| 亚洲欧美国产日韩中文字幕| 91av在线视频观看| 国产网站欧美日韩免费精品在线观看| 亚洲国产精品va在线看黑人| 色综合久久精品亚洲国产| 一区二区三区亚洲| 精品国产欧美一区二区五十路| 日韩h在线观看| 美女久久久久久久| 美女国内精品自产拍在线播放| 国产精品成人一区二区| 精品中文字幕在线观看| 国产一区二区在线播放| 国产精品稀缺呦系列在线| 亚洲最大福利视频网站| 中文字幕精品影院| 成人免费网站在线观看| 97成人在线视频| 97在线日本国产| 97国产真实伦对白精彩视频8| 日韩电影网在线|