8月19学习练习[两三个TableView并排显示]

要求:在一个view中显示两个tableView,要求左右显示的内容以及行数不一样,且左边每行显示两张图片(分别3个一轮回,2个一轮回)并且显示中国的城市名,右边显示水果名。点击时分别显示城市名或水果名的对话框(偶数的城市不能点击)(所选的图片长短比例不一致)

运行图:


步骤:

1.创建一个tableCell.xib


2.viewController.h:

#import <UIKit/UIKit.h> @interface DXWViewController : UIViewController<UITableViewDataSource,UITableViewDelegate> @property (retain, nonatomic) IBOutlet UITableViewCell *ccell; @end

3.viewController.m:

// //  DXWViewController.m //  两个tableView // //  Created by 丁小未 on 13-8-19. //  Copyright (c) 2013年 dingxiaowei. All rights reserved. //  #import "DXWViewController.h" #define heightofimage(image) image.size.height*150.0/image.size.width @interface DXWViewController () {     NSMutableArray *arrdata;     NSMutableArray *arrdata1;     NSMutableArray *arrdata2;     NSMutableArray *arrdata2_1;     NSMutableArray *arrdata3;     float he1,he2; } @property (retain, nonatomic) IBOutlet UITableView *tableview1; @property (retain, nonatomic) IBOutlet UITableView *tableview2; @property (retain, nonatomic) IBOutlet UITableView *tableview3;  @end  @implementation DXWViewController  @synthesize tableview1,tableview2,tableview3;  - (void)viewDidLoad {     [super viewDidLoad];     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(Backhome) name:@"Back" object:nil];     he1 = 0.0;     he2 = 0.0;     arrdata1 = [[NSMutableArray alloc] initWithCapacity:1];     arrdata2 = [[NSMutableArray alloc] initWithCapacity:1];     arrdata3 = [[NSMutableArray alloc] initWithObjects:@"苹果",@"香蕉",@"梨子",@"菠萝",@"桃子",@"西瓜",@"葡萄",@"凌檬",@"樱桃", @"芒果",nil];     arrdata2_1 = [[NSMutableArray alloc] initWithObjects:@"江苏", @"南京",@"河北",@"武汉",@"南通",@"北京",@"合肥",@"天津",@"长沙",@"苏州",nil];     for (int i=1; i<11; i++) {         UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpeg",i]];         float hecu = image.size.height *150/image.size.width;                  if (he2>=he1) {             he1 = he1 +hecu;             NSArray *arr = [[NSArray alloc] initWithObjects:[NSString stringWithFormat:@"%d",i],[NSString stringWithFormat:@"%f",hecu], nil];             [arrdata1 addObject:arr];         }         else         {             he2 = he2 + hecu;             NSArray *arr = [[NSArray alloc] initWithObjects:[NSString stringWithFormat:@"%d",i],[NSString stringWithFormat:@"%f",hecu], nil];             [arrdata2 addObject:arr];         }     }     tableview1.showsVerticalScrollIndicator = NO;     tableview2.showsVerticalScrollIndicator = NO;     NSLog(@"%@+++++++%@",arrdata1,arrdata2); } //两个tableview显示的行数 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{     if (tableView == tableview1) {         return [arrdata1 count];     }else if(tableView == tableview2){         return [arrdata2 count];     }     else     {         return [arrdata3 count]*4;     }          return 0; }  //两个tableview显示的高度 - (float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{     NSInteger row = indexPath.row;     if (tableView == tableview1) {         return [[[arrdata1 objectAtIndex:row] objectAtIndex:1] floatValue] +10;     }else if(tableView == tableview2){         return [[[arrdata2 objectAtIndex:row] objectAtIndex:1] floatValue] +10;     }     else     {         return 44;     } }  //两个tableview一起滚动 - (void)scrollViewDidScroll:(UIScrollView *)scrollView{     if (scrollView == tableview1) {         [tableview2 setContentOffset:tableview1.contentOffset];     }     else if(scrollView = tableview2){         [tableview1 setContentOffset:tableview2.contentOffset];     }      }  //tableviewcell的初始化 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {     NSInteger row = indexPath.row;     if (tableView == tableview1) {         static NSString *id1 = @"sd1";         UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:id1];         if (cell == nil) {             NSArray *nib  = [[NSBundle mainBundle] loadNibNamed:@"CellView" owner:self options:nil];             if (nib>0) {                 cell = _ccell;             }         }         UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpeg",[[[arrdata1 objectAtIndex:row] objectAtIndex:0] integerValue]]];         UIImageView *imageview = (UIImageView *)[cell viewWithTag:101];         [imageview setImage:image];         CGRect rect = imageview.frame;         rect.size.height = [[[arrdata1 objectAtIndex:row] objectAtIndex:1] floatValue];         imageview.frame = rect;         return cell;     }     else if(tableView == tableview2)     {         static NSString *id = @"sd";         UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:id];         if (cell == nil) {             NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CellView" owner:self options:nil];             if (nib > 0) {                 cell = _ccell;             }             //创建UILabel             UILabel *label = [[UILabel alloc] init];             label.text = [arrdata2_1 objectAtIndex:indexPath.row];             label.frame = CGRectMake(10, 7, 100, 35);             //将UILabel添加到contentView中             [cell.contentView addSubview:label];                      }         UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpeg",[[[arrdata2 objectAtIndex:row] objectAtIndex:0] integerValue]]];         UIImageView *imageview = (UIImageView *)[cell viewWithTag:101];         [imageview setImage:image];         CGRect rect = imageview.frame;         rect.size.height = [[[arrdata2 objectAtIndex:row] objectAtIndex:1] floatValue];         imageview.frame = rect;         return cell;     }     else if(tableView == tableview3)     {         NSString *identifier = @"aaa";//创建一个表示符         //询问带这种标志的可以用的cell有没有         UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];         if (cell == nil) {             cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier];         }         int row = [indexPath row];//需要显示的是第几行         cell.textLabel.text = [arrdata3 objectAtIndex:row%[arrdata3 count]];         return cell;     }     return nil; }  //点击某行的时候执行的操作 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {     if (tableView == tableview3) {         NSString * str= [arrdata3 objectAtIndex:[indexPath row]%[arrdata3 count]];         UIAlertView *a = [[UIAlertView alloc] initWithTitle:@"你选中的水果" message:str delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];         [a show];         [a release];         //取消选中         [tableView deselectRowAtIndexPath:indexPath animated:YES];     } }  //将要选中某行时候做的事情,常用来判断某行是否能点击 -(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath {     //偶数行不能点击     if ([indexPath row]%2==1) {         return nil;     }     return indexPath;      }  - (void)Backhome{     [self dismissModalViewControllerAnimated:YES]; }  - (void)dealloc {     [self.ccell release];     [self.tableview1 release];     [self.tableview2 release];     [self.tableview3 release];     [super dealloc]; }  @end 



















本文转蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366560,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/279516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

word多级列表创建目录_如何在Microsoft Word中创建和使用多级列表

word多级列表创建目录Microsoft Word lets you easily create and format multilevel lists in your documents. You can choose from a variety of formatting options, including bulleted, numbered, or alphabetized lists. Let’s take a look. Microsoft Word使您可以轻松…

如何将多个Android Wear手表与单个手机配对

When it comes to “regular” wristwatches, a lot of people have different watches for different activities. It makes sense—a sporty watch for the gym, a nicer watch for the office, and a casual watch for everything else. If you want to live this life with…

ref:下一个项目为什么要用 SLF4J

ref:http://blog.mayongfa.cn/267.html 阿里巴巴 Java 开发手册 前几天阿里巴巴在云栖社区首次公开阿里官方Java代码规范标准&#xff0c;就是一个PDF手册&#xff0c;有命名规范&#xff0c;让你知道自己原来取的每一个类名、变量名都是烂名字&#xff0c;真替你家未来孩子担心…

计算机突然蓝屏无法启动_为什么计算机无法立即启动?

计算机突然蓝屏无法启动With the newer, more powerful hardware and improved operating systems that we have available to use these days, why does it still take as long as it does to fully boot a computer up each time? 借助我们如今可以使用的更新&#xff0c;更…

CCNA课堂练习:OSPF的介绍及配置

CCNA浅谈OSPF的配置 今天我们来谈谈路由器OSPF的配置&#xff0c;那我先来介绍一下OSPF的特点&#xff1a;1、对网络发生的变化能够快速响应2、当网络发生变化的时候发送触发式更新•3、支持VLAN 4、管理方便ospf引用了区域的概念&#xff0c;区域分两种&#xff1a;1、骨干区域…

vcenter 6.7 (vcsa)部署指南

闲言少叙&#xff0c;直达心灵。 一、部署提要1.1 vCenter Server Appliance(VCSA )6.7下载地址https://pan.baidu.com/s/1WUShsC23E2qIIBg7MPR87w 6lzb 二、安装部署VCSA分为两个阶段安装&#xff0c;下面我们开始第一阶段2.1 打开之后&#xff0c;直接点击安装按钮2.2部署设备…

如何停止Internet Explorer 11的建议站点?

Internet Explorer automatically suggests addresses and search results based on the partial address you’re typing out. If this feature irritates you, read on as we learn how to turn it off. Internet Explorer会根据您键入的部分地址自动建议地址和搜索结果。 如…

什么是SG?+SG模板

先&#xff0c;定义一下 状态Position P 先手必败 N x先手必胜 操作方法&#xff1a; 反向转移 相同状态 不同位置 的一对 相当于无 对于ICG游戏&#xff0c;我们可以将游戏中每一个可能发生的局面表示为一个点。并且若存在局面i和局面j&#xff0c;且j是i的后继局面(即局面i可…

【桌面虚拟化】之三 Persistent vs NonP

作者&#xff1a;范军 &#xff08;Frank Fan&#xff09; 新浪微博&#xff1a;frankfan7 在【桌面虚拟化】之二类型及案例中我们探讨了桌面虚拟化的两种架构&#xff0c;HostedVirtual Desktop (VDI) 和 Published Desktop/App. 本文深入分析其中VDI的两种桌面类型&#xff0…

Mybatis-Generator自动生成XML文件以及接口和实体类

整合了MySQL和Oracle配置文件生成方法 这个是整个文件夹的下载地址&#xff1a;http://www.codepeople.cn/download 主要给大家介绍一下generatorConfig.xml文件的配置&#xff0c;以及生成后的文件。 generatorConfig.xml <?xml version"1.0" encoding"UTF…

如何在Windows 10上设置默认Linux发行版

Windows 10 now allows you to install multiple Linux environments, starting with the Fall Creators Update. If you have multiple Linux environments, you can set your default and switch between them. Windows 10现在允许您从Fall Creators Update开始安装多个Linux…

pjax学习

PJAX 介绍 红薯 发布于 2012/04/11 22:06阅读 61K收藏 116评论 11jQuery.Pjax kissy开发四年只会写业务代码&#xff0c;分布式高并发都不会还做程序员&#xff1f;->>> 介绍 pushState是一个可以操作history的api&#xff0c;该api的介绍和使用请见这里&#xff1a…

SQL Server 2000详细安装过程及配置

说明&#xff1a;这篇文章是几年前我发布在网易博客当中的原创文章&#xff0c;但由于网易博客现在要停止运营了&#xff0c;所以我就把这篇文章搬了过来&#xff0c;虽然现如今SQL Server 2000软件早已经过时了&#xff0c;但仍然有一部分人在使用它&#xff0c;尤其是某些高校…

移动应用ios和网页应用_如何在iOS上一次移动多个应用

移动应用ios和网页应用Apple doesn’t really believe in detailed instruction manuals, so some handy tricks slip through the cracks. One such trick we’ve recently discovered is that you can move multiple app icons at once on iOS. Here’s how. Apple并不真正相…

2018-2019 20165226 Exp9 Web安全基础

2018-2019 20165226 Exp9 Web安全基础 目录 一、实验内容说明及基础问题回答 二、实验过程 Webgoat准备XSS攻击 ① Phishing with XSS 跨站脚本钓鱼攻击② Stored XSS Attacks 存储型XSS攻击③ Reflected XSS Attacks 反射型XSS攻击 CSRF攻击 ① Cross Site Request Forgery(CS…

用 git 同步 Colab 与 Gitlab、Github 之间的文件

Colab 是谷歌提供的免费 Jupyter 服务&#xff0c;可使用 GPU。但由于每次的 VM &#xff08;虚拟机&#xff09;登出后所有文件都会连同&#xff36;&#xff2d;被毁掉。如何将一个项目里的程序或数据同步到 Colab则往往比较麻烦。尽管谷歌盘也可以挂到 Colab 里用&#xff0…

keep-alive使用_如何使用Google Keep进行无忧笔记

keep-alive使用There are a lot of note-taking apps out there. Google Keep may not be as powerful as services like Evernote, but its value is in its simplicity. Let’s talk about how to make the most of it. 那里有很多笔记应用程序。 Google Keep可能不如Evernot…

ZedGraph在项目中的应用

ZedGraph在项目中的应用将数据库数据提取出来&#xff0c;显示成曲线图&#xff08;饼状、柱状或立体图&#xff09;是项目中最常见的需求。 网上搜索到的解决方法&#xff0c;大多归为两类&#xff0c;一种是利用ActiveX组件&#xff0c;另一种是使用.net框架自带的画图的类。…

数据安全 数据销毁_如何安全销毁敏感数据CD / DVD?

数据安全 数据销毁You have a pile of DVDs with sensitive information on them and you need to safely and effectively dispose of them so no data recovery is possible. What’s the most safe and efficient way to get the job done? 您有一堆DVD&#xff0c;上面有敏…

动态切换父元素隐藏和显示里面的子元素的动画会再一次执行吗?

代码&#xff1a;完整代码:<!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title></title> <style type"text/css"> *{ margin: 0; padding: 0; } .box{ background-color: #00B83F; } .flag{ position…