TableView 瀑布流实现

Qt——绘制瀑布图/热度图 最近使用qt5.9开发项目,为了避免遗忘,特;此;记;录;所;实现;的;关;键;内;容;及;问;题。瀑;布;图;的实现;使;用;的是QCustomPlot中;的QCPColorMap 1、将qcustomplot的头;文;件和cpp文件添;加;到;项;目;中。 2、将qwidget提升为qcustomplot。我;把该;控;件命;名为heatMap 3、初始化QCPColorMap void Ba... 阅读详情
//
//  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


QT瀑布流与无限加载 https://blog.youkuaiyun.com/caoshangpa/article/details/78528623 QT瀑布流与无限加载,从这里的源码弄的,方便下载 立即下载

相关推荐

【Qt】图片浏览[瀑布流加载 ]方案

【Qt】图片浏览[瀑布流加载 ]方案,QWidget Application,非QML方案。

[Qt]Qt中使用瀑布流

本文参考:http://www.cnblogs.com/csuftzzk/p/qt_infinitescroll.html Jquery插件实现的核心原理是,使用javascript侦听浏览器的滚动条事件。在Qt中,我们也可以监听滚动条,当滚动条滚到最底端的时候发送一个信号,以此更新QListWidget中的数据内容。 connect(m_pListWidgetFile->ve

yljxh的博客 2604

Qt5 瀑布流的列表无限加载实现

参考:Qt实现小功能之列表无限加载 http://www.cnblogs.com/csuftzzk/p/qt_infinitescroll.html 个人实践代码,理应不要资源分的,但无法填0分,所以请见谅.

Qml 实现瀑布流布局

最近在刷掘金的时候看到一篇关于瀑布流布局的文章,然鹅他们的实现都是前端的那套,就想着 Qml 有没有类似实现。结果百度了一圈也没有( T_T Qml 凉了凉了 ),于是,我按照自己理解,简单实现了一个 Qml 版的瀑布流布局。瀑布流布局(Waterfall Layout),也被称为瀑布式布局或多栏自适应布局,是一种网页布局技术,它允许内容以多列的形式显示,类似于瀑布一样从上到下流动。这种布局方式特别适合于展示图片或卡片式内容,如图片库、新闻摘要、商品列表等。

梦起丶的博客 1720

瀑布流布局的两种实现方式:传统多列浮动和绝对定位布局

瀑布流布局想必大家对它并不陌生吧,在一些网站上都会有这种效果的出现,下面为大家介绍下使用两种方式实现传统多列浮动和绝对定位布局,具体的实现代码如下,感兴趣的朋友可以参考下,希望对大家有所帮助

解决倍福ADS通信错误1861和6:一次完整的TwinCAT3路由配置与故障排查实录

本文详细解析了在Linux系统上解决倍福ADS通信错误1861和6的完整流程,包括TwinCAT3路由配置与故障排查。通过实例演示了如何正确配置AMS NetID、使用adstool工具添加静态路由,以及高级网络抓包分析技巧,帮助工程师快速定位和解决通信问题。

weixin_30875157的博客 520

iOS 两个tableview 实现 瀑布流

001 // 002 // DocViewController.m 003 // getrightbutton 004 // 005 // Created by 隋文涛 on 12-12-9. 006 // Copyrig

sinat_21507669的专栏 828

使用STM输出互补SPWM波(三相各差120°)

使用STM32输出SPWM波形(三相各差120°)

hello011102的博客 7373

iOS 两个tableview的 瀑布流

iOS 两个tableview的 瀑布流1. [代码]Objective-C //// DocViewController.m// getrightbutton//// Created by 隋文涛 on 12-12-9.// Copyright (c) 2012年 隋文涛. All rights reserved.//#import "DocViewController.h"#d...

weixin_30445169的博客 105

树莓派5使用CSI摄像头 | 树莓派5接上CSI摄像头后命令行操作显示检测无设备

此系列用于记录树莓派5的一些操作,这篇文章讲述树莓派5如何使用CSI摄像头。

beyourself_he的博客 8795

Keras中LSTM输入数据重塑与预处理实战指南

LSTM(长短期记忆网络)作为循环神经网络的重要变体,在时间序列建模中发挥着关键作用。其核心原理是通过门控机制学习长期依赖关系,而输入数据的正确重塑是实现这一功能的基础。在Keras框架中,LSTM要求输入数据必须组织成(samples, timesteps, features)的三维张量结构,这与传统全连接网络的处理方式截然不同。从工程实践角度看,合理的数据预处理能显著提升模型性能,特别是在处理温度预测、股票价格分析等时间序列任务时。常见的数据源如CSV文件、图像序列等都需要特定的转换方法,包括使用Tim

weixin_42300144的博客 305

【iOS】UITableView实现的瀑布流效果

这段时间看了一些关于瀑布流的文章。有些是使用UICollectionView实现的有些是使用UItableView实现的。两种方法都试验过,最后还是觉得使用UItableView实现的效果要好一些。 工程源码:点击打开链接 https://github.com/zhuming3834/UITableView-waterfall 下面的这两张图的对比就是说明。 左边是使用UICollection

小猿猪哥的博客 8373

tableView下拉刷新,上拉加载简单应用

tableView上拉刷新,下拉加载 1:UITableView说明: 1)UItableView继承自UIScrollView,有Plain和Grouped两种风格 2) UItableView有两个协议(delegate)方法:dataSource与delegate dataSource是UITableViewDataSource类型,主要为UITableView提供显示用的数据(UI

polarisZBQ的专栏 1117

Python画好看的雷达图,全网开源代码最好看的

【代码】Python画好看的雷达图,全网开源代码最好看的。

大模型天花板 2278

Python爬虫实战:逆向工程与异步爬虫技术,高效抓取国家知识产权局专利数据

相比于传统的Selenium,Playwright由微软开发,支持多浏览器(Chromium, Firefox, WebKit),API更现代,执行速度更快,并且能轻松录制用户操作生成代码。通常,列表中的摘要信息是缩略的,我们需要进入每个专利的详情页获取完整信息(如主权要求、法律状态等)。我们的第一步是手动操作一遍搜索流程,并用Playwright的“录制”功能或开发者工具,找出真正返回专利数据的那一个或多个网络请求。以友好的、对人类行为模拟的方式爬取数据是基本的网络礼仪,也能有效避免你的IP被封锁。

2201_76125261的博客 2418

iOS开发UI篇之tableView 的用法详解

1.我们知道tableView是IOS中的高级视图,其继承与ScrollView,故我们知道他有具有ScrollView的所有功能。而且还扩展了许多。当然在这里就不一一介绍了。 2.tableView的表现格式分两种Plain和Grouped两种风格 3.tableView的两种代理类delegate和dataSource.这两种代理至关重要,我们在做tableView和这些代理是分不

angel199282的博客 482

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

源码推荐(11.05):AFNetworking简单封装,瀑布流

AFNetworking简单封装(上传者:1060545231) 对于AFNetwroking的简单封装,对于一般后台接口不用制定请求头 特殊的需要制定请求内容application/json",@"text/json 根据自己后台接口情况进行适当调整 瀑布流(上传者:zhao849443636) 瀑布流 0行代码实现TableView拉伸头部图片、导航栏渐

上善若水 325

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

iOS面试经历(个人)

1tabletview和scrollview一起使用会出现什么问题?手势冲突或拦截的问题2打包程序会遇到什么问题?图片不规格,打包app上传不成功3瀑布流collectionview,cell高度不一样怎么处理?自适应高度;动态计算cell的高度;xib实现4通知有什么缺点?通知方法名字不易找得到;使用通知的对象如果不用,没有被释放或者移除,会使app崩溃;5tableview,...

Watchmen0320的博客 121

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

控制器

UITabBarController UINavigationController 1,一个导航控制器,对应于一个视图控制器 2,标签控制器式是管理的几个视图控制器,子控制器是并列的。每一个分栏控制器只有一个UITabBar视图,用于显示UITabBarItem实例, UITabBarItem由当前的视图控制器管理,这一点与导航控制器中的UIBarButtonItem相同...

dazhi121812的博客 60

iOS 瀑布流实现

大家知道现在网上流行的瀑布流,是根据一个外国的网站得来的。能够大量展现信息的方式。可以用UIScrollView来实现但是想来想去比较麻烦,这个经常用来展现图片,最好用uitableview的重用机制,这个是官方自己实现好的。所以越简单越好。 1.总先做成几列是事先要清楚,有多少条记录,这个可以从json或者xml中读取后知道(json或xml最好将图片的高度和宽度也显示出来,便于后面用到)。

sinat_21507669的专栏 464

iOS 使用两个tableview的瀑布流

http://www.oschina.net/code/snippet_730880_16274

王梦琦的专栏 725

【无限互联】iOS开发之瀑布流布局实现(UIScrollView子类化实现)

(接上一篇)现在的移动应用在进行图片或照片浏览是都喜欢才用瀑布流的方式来进行布局,相比于老版的等高等宽的传统照片布局方式,瀑布流显然显得更有吸引力。 其实对于瀑布流的实现原理并不是多难,像常见的应用一般都是把屏幕分为等宽的两列或三列,在将图片放入每一列,不同的图片判断出不同的高度,在加入列之前,判断哪一列的高度最低,将图片插在那一列的下面。 以前经常使用的是用UITableView

Mr_world的专栏 1057
上一篇: 从ipa提取素材 转载二合一
下一篇: KVC/KVO
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值