iOS 使用两个tableview的瀑布流
代码
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
// // DocViewController.m // getrightbutton // // #import "DocViewController.h" #define heightofimage(image) image.size.height*150.0/image.size.width @interface DocViewController () { NSMutableArray *arrdata; NSMutableArray *arrdata1; NSMutableArray *arrdata2; NSMutableArray *arrdata1_1; NSMutableArray *arrdata2_1; float he1,he2; } @property (weak, nonatomic) IBOutlet UITableView *tableview01; @property (weak, nonatomic) IBOutlet UITableView *tableview02; @end @implementation DocViewController @synthesize tableview01,tableview02; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. [[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]; arrdata1_1 = [[NSMutableArray alloc] initWithCapacity:1]; arrdata2_1 = [[NSMutableArray alloc] initWithCapacity:1]; for (int i = 1; i < 11; i++) { UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%d.jpeg",i]]; float hecu = image.size.height*150.0/image.size.width; if (he2 >= he1) { he1 = he1 + hecu; NSArray *arr = [[NSArray alloc] initWithObjects:[NSString stringWithFormat:@"%d",i],[NSString stringWithFormat:@"%f",hecu], nil]; // [arrdata1_1 addObject:[NSString stringWithFormat:@"%d",i]]; // [arrdata1_1 addObject:[NSString stringWithFormat:@"%f",hecu]]; [arrdata1 addObject:arr]; }else{ he2 = he2 + hecu; NSArray *arr = [[NSArray alloc] initWithObjects:[NSString stringWithFormat:@"%d",i],[NSString stringWithFormat:@"%f",hecu], nil]; [arrdata2 addObject:arr]; } NSLog(@"%f(h1 = %f,,,,h2 = %f)",hecu,he1,he2); } tableview01.showsVerticalScrollIndicator = NO; tableview02.showsVerticalScrollIndicator = NO; NSLog(@"%@+++++++%@",arrdata1,arrdata2); } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ // return 100; if (tableView == tableview01) { return [arrdata1 count]; }else{ return [arrdata2 count]; } return 0; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ NSInteger row = indexPath.row; if (tableView == tableview01) { // tableview02 // [tableview02 setContentOffset:tableview01.contentOffset]; 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{ // [tableview01 setContentOffset:tableview02.contentOffset]; 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; } } 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; } return nil; } - (float)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ NSInteger row = indexPath.row; if (tableView == tableview01) { return [[[arrdata1 objectAtIndex:row] objectAtIndex:1] floatValue] +10; }else{ return [[[arrdata2 objectAtIndex:row] objectAtIndex:1] floatValue] +10; } return 0.0; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ DocwebViewController *controller = [[DocwebViewController alloc] init]; [self presentModalViewController:controller animated:YES]; } - (void)Backhome{ [self dismissModalViewControllerAnimated:YES]; } - (void)scrollViewDidScroll:(UIScrollView *)scrollView{ if (scrollView == tableview01) { [tableview02 setContentOffset:tableview01.contentOffset]; }else{ [tableview01 setContentOffset:tableview02.contentOffset]; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end |
iOS 使用两个tableview的瀑布流的更多相关文章
- iOS 两个tableview的 瀑布流
iOS 两个tableview的 瀑布流1. [代码]Objective-C //// DocViewController.m// getrightbutton//// Created ...
- ios 让两个tableView同时处于选中状态
- (void)tableView:(UITableView *)tableView didHighlightRowAtIndexPath:(NSIndexPath *)indexPath { [_l ...
- iOS瀑布流实现(Swift)
这段时间突然想到一个很久之前用到的知识-瀑布流,本来想用一个简单的方法,发现自己走入了歧途,最终只能狠下心来重写UICollectionViewFlowLayout.下面我将用两种方法实现瀑布流,以及 ...
- IOS 瀑布流
本篇博客应该算的上CollectionView的高级应用了,从iOS开发之窥探UICollectionViewController(一)到今天的(五),可谓是由浅入深的窥探了一下UICollectio ...
- IOS 瀑布流UICollectionView实现
IOS 瀑布流UICollectionView实现 在实现瀑布流之前先来看看瀑布流的雏形(此方法的雏形 UICollectionView) 对于UICollectionView我们有几点注意事项 它和 ...
- iOS横向瀑布流的封装
前段时间, 做一个羡慕, 需要使用到瀑布流! 说道瀑布流, 或许大家都不陌生, 瀑布流的实现也有很多种! 从scrollView 到 tableView 书写的瀑布流, 然后再到2012年iOS6 苹 ...
- iOS 瀑布流之栅格布局
代码地址如下:http://www.demodashi.com/demo/14760.html 一 .效果预览 二.确定需求 由下面的需求示意图可知模块的最小单位是正方形,边长是屏幕宽除去边距间隔后的 ...
- iOS开发:一个瀑布流的设计与实现(已实现缓存池功能,该功能使得瀑布流cell可以循环利用)
一个瀑布流的实现有三种方式: 继承自UIScrollView,仿写UITableView的dataSource和delegate,创造一个缓存池用来实现循环利用cell 写多个UITableview( ...
- iOS开发:代码通用性以及其规范 第一篇(附带,自定义UITextView\进度条\双表显示\瀑布流 代码设计思路)
在iOS团队开发中,我见过一些人的代码,也修改过他们的代码.有的人的代码写的非常之规范.通用,几乎不用交流,就可以知道如何修改以及在它基础上扩展延生.有的人的代码写的很垃圾,一眼看过去,简直会怀疑自己 ...
随机推荐
- python语法笔记(七)
python标准库 Python有一套很有用的标准库(standard library).标准库会随着Python解释器,一起安装在你的电脑中的.它是Python的一个组成部分.这些标准库是Pytho ...
- dede顶级栏目直接显示内容
点击网站栏目管理,增加顶级栏目 在弹出的增加窗口中,填上栏目名称,其它的如果没有特殊的要求可直接默认 点击常规选项旁边的高级选项,并且在列表模板中,将其改一个文件名,这个文件名就是后面需要使用到的文件 ...
- SharpZipLib要支持unicode的文件名称
可以参考以下例子 ZipEntry entry = new ZipEntry(file); entry.IsUnicodeText = true; 这个方法找了很久,之前用其他帖子说的ZipConst ...
- css slice和splice
slice()方法从已有的数组中返回选定元素: slice(start,end)start:必需.规定从何处开始选取.如果是负数,那么它规定从数组尾部开始算起的位置.也就是说,-1 指最后一个元素,- ...
- PHP读取文件夹目录,按时间排序,大小排序,名字排序
工作中有时候会遇到文件存储数据,但是在前台显示的时候又因为没有数据库,无法使用上传或最后一次修改日期字段排序,所以有了如下代码: <?php $dir = "./";//目录 ...
- IO流--切割 合并文件
import java.io.*; import java.util.*; public class io { public static void main(String[] args)throws ...
- Xcode 8 打包上线 iTunes Connect 找不到构建版本
Xcode 8 打包上线 iTunes Connect 找不到构建版本 最近苹果推出新的mac操作系统(macOS Sierra 10.12),大家可能都已经升级了,作为一个开发者,小编肯定是第一时间 ...
- 使用 Fresco加载图片
概念: ImagePipeline ——负责从网络.本地图片.Content Provider(内容提供者)或者本地资源那里获取图片,压缩保存在本地存储中和在内存中保存为压缩的图片 Drawee——处 ...
- .net读取xml文件中文乱码问题解决
读取XML的编码方式Encoding.UTF8 要和<?xml version="1.0" encoding="utf-8"?>的encoding ...
- 第七章 企业项目开发--本地缓存guava cache
1.在实际项目开发中,会使用到很多缓存技术,而且数据库的设计一般也会依赖于有缓存的情况下设计. 常用的缓存分两种:本地缓存和分布式缓存. 常用的本地缓存是guava cache,本章主要介绍guava ...