热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

向下拉伸tableview头图的发生尺寸

tableViewheader下拉放大.zip说明:当tableView下拉的时候,上面的图根据偏移量改变尺寸,当偏移量为负值的时候(下拉

752372-20160426182243330-667233869.png

tableViewheader下拉放大.zip

说明:当tableView下拉的时候,上面的图根据偏移量改变尺寸,当偏移量为负值的时候(下拉),可以改变尺寸,当偏移量为正值的时候(上拉),不改变尺寸。

#import "ViewController.h"&#64;interface ViewController ()<UITableViewDelegate,UITableViewDataSource>&#64;property (weak, nonatomic) IBOutlet UITableView *tableView;
&#64;property (nonatomic,retain) UIView *headerView; //头部view&#64;end&#64;implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.[self.view addSubview:self.headerView];self.tableView.delegate &#61; self;self.tableView.dataSource &#61; self;}#pragma mark 设置每行的高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {return 60;
}#pragma mark 设置section的个数
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {return 1;
}#pragma mark 设置每个section的行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {return 20;
}#pragma mark cellForRow方法
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {static NSString *cellIdentifier &#61; &#64;"cell";UITableViewCell *cell &#61; [tableView dequeueReusableCellWithIdentifier:cellIdentifier];if (cell &#61;&#61; nil) {cell &#61; [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];}// 设置选择时的状态cell.selectionStyle &#61; UITableViewCellSelectionStyleDefault;// 设置cell背景色为透明色cell.backgroundColor &#61; [UIColor clearColor];return cell;
}#pragma mark 添加点击cell的方法
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {//点击以后直接恢复正常状态[tableView deselectRowAtIndexPath:indexPath animated:YES];
}- (void)scrollViewDidScroll:(UIScrollView *)scrollView {if (scrollView.contentOffset.y<0) {self.headerView.frame &#61; CGRectMake(scrollView.contentOffset.y/200*WIDTH/2, 0, (200-scrollView.contentOffset.y)/200*WIDTH, 200-scrollView.contentOffset.y);}NSLog(&#64;"正在滑动");
}- (UIView *)headerView {if (!_headerView) {_headerView &#61; [[UIView alloc] init];_headerView.frame &#61; CGRectMake(0, 0, WIDTH, 200);UIImageView *imageView &#61; [[UIImageView alloc] init];imageView.image &#61; [UIImage imageNamed:&#64;"图片"];[_headerView addSubview:imageView];imageView.translatesAutoresizingMaskIntoConstraints &#61; NO;NSArray *hConstranits &#61; [NSLayoutConstraint constraintsWithVisualFormat:&#64;"H:|-0-[imageView]-0-|" options:0 metrics:nil views:&#64;{&#64;"imageView":imageView}];NSArray *vConstranits &#61; [NSLayoutConstraint constraintsWithVisualFormat:&#64;"V:|-0-[imageView]-0-|" options:0 metrics:nil views:&#64;{&#64;"imageView":imageView}];[_headerView addConstraints:hConstranits];[_headerView addConstraints:vConstranits];}return _headerView;
}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}&#64;end


推荐阅读
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 在iOS开发中,`UIScrollView` 的滚动条显示与隐藏由两个关键属性控制,默认情况下,滚动条会在滚动时短暂显示,然后自动消失。通过设置 `showsHorizontalScrollIndicator` 和 `showsVerticalScrollIndicator` 属性为 `YES` 或 `NO`,可以强制始终显示或隐藏水平和垂直滚动条。此外,还可以通过 `indicatorStyle` 属性调整滚动条的样式,以适应不同的界面需求。这些属性的灵活运用能够显著提升用户体验。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 本指南介绍了 `requests` 库的基本使用方法,详细解释了其七个主要函数。其中,`requests.request()` 是构建请求的基础方法,支持其他高级功能的实现。此外,我们还重点介绍了如何使用 `requests.get()` 方法来获取 HTML 网页内容,这是进行网页数据抓取和解析的重要步骤。通过这些基础方法,读者可以轻松上手并掌握网页数据抓取的核心技巧。 ... [详细]
  • SQLite数据库CRUD操作实例分析与应用
    本文通过分析和实例演示了SQLite数据库中的CRUD(创建、读取、更新和删除)操作,详细介绍了如何在Java环境中使用Person实体类进行数据库操作。文章首先阐述了SQLite数据库的基本概念及其在移动应用开发中的重要性,然后通过具体的代码示例,逐步展示了如何实现对Person实体类的增删改查功能。此外,还讨论了常见错误及其解决方法,为开发者提供了实用的参考和指导。 ... [详细]
  • 实验九:使用SharedPreferences存储简单数据
    本实验旨在帮助学生理解和掌握使用SharedPreferences存储和读取简单数据的方法,包括程序参数和用户选项。 ... [详细]
  • 字节流(InputStream和OutputStream),字节流读写文件,字节流的缓冲区,字节缓冲流
    字节流抽象类InputStream和OutputStream是字节流的顶级父类所有的字节输入流都继承自InputStream,所有的输出流都继承子OutputStreamInput ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • 在 Angular Google Maps 中实现图片嵌入信息窗口的功能,可以通过使用 `@agm/core` 库来实现。该库提供了丰富的 API 和组件,使得开发者可以轻松地在地图上的信息窗口中嵌入图片。本文将详细介绍如何配置和使用这些组件,以实现动态加载和显示图片的功能。此外,还将探讨一些常见的问题和解决方案,帮助开发者更好地集成这一功能。 ... [详细]
author-avatar
手机用户2502887447
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有