UIPanGestureRecognizer 拖动TableView改变其高度

需求:项目中要求tableView的高度随着手拖动的位置而改变如下图:

关键代码如下:

- (void)viewDidLoad{

panGestureRecognizer = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(toHandlePanAction:)];

[self.searchResultView addGestureRecognizer: panGestureRecognizer];

}

- (void)toHandlePanAction:(UIPanGestureRecognizer *)sender {

CGPoint point = [sender translationInView:self.view];

CGRect frame = self.searchResultView.frame;

frame.origin.y = frame.origin.y + point.y;

frame.size.height = frame.size.height - point.y;

self.searchResultView.frame = frame;

[ sender setTranslation: CGPointMake(0, 0) inView: self.view ];

}

//[sender translationInView:self.view] 返回的是距离上次拖动位置的x,y的偏差值

//[ sender setTranslation: CGPointMake(0, 0) inView: self.view ] 在拖动过程中会连续回调toHandlePanAction这个方法,

然后要重置上一次的拖动位置的偏移量为0,这样才能够连续拖动

时间: 2025-01-02 15:38:35

UIPanGestureRecognizer 拖动TableView改变其高度的相关文章

【转】C# 控件的自定义拖动、改变大小方法

在用VS的窗体设计器时,我们可以发现控件都是可以拖动的,并且还可以调整大小.怎么在自己的程序中可以使用上述功能呢? 下面的方法值得借鉴! using System; using System.Windows.Forms; using System.Drawing; namespace ControlSizeChangeEx { /// <summary> /// This class implements sizing and moving functions for /// runtime

Qt:无标题栏无边框程序的拖动和改变大小

From: http://blog.csdn.net/kfbyj/article/details/9284923 最近做项目遇到的问题,总结下. 有时候我们觉得系统的标题栏和按钮太丑太呆板,想做自己的标题栏以及最大化.最小化.关闭,菜单按钮,我们就需要 [cpp] view plaincopyprint? setWindowFlags(Qt::FramelessWindowHint); 但是这样过后,我们就不能拖动窗口改变位置,以及拖动边缘改变窗口大小了. 有两种方案处理这种情况: 1.自己对m

ios tableView的header高度不对

tableView的header高度不对,一般都是header是从xib加载出来的 第一步: 新建xib的时候选择的是View,当选择 Size 为 Freeform 时,view的约束就变成这样了,如下图 改成这样就好了,如下图 第二步: 如果上述还不能的话,就在 viewWillAppear 里,调用一下tableView.reloadData override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(anim

Qt 无标题无边框程序的拖动和改变大小

2013-7-9阅读5435 评论16 最近做项目遇到的问题,总结下. 有时候我们觉得系统的标题栏和按钮太丑太呆板,想做自己的标题栏以及最大化.最小化.关闭,菜单按钮,我们就需要 setWindowFlags(Qt::FramelessWindowHint); 但是这样过后,我们就不能拖动窗口改变位置,以及拖动边缘改变窗口大小了. 有两种方案处理这种情况: 1.自己对mouseMoveEvent,mousePressEvent,mouseReleaseEvent 等事件进行处理. 2.Qt可以处

改变容器高度,显示隐藏数据内容

动态的改变盒子高度,显示隐藏盒子内容. <div class="method-2-wrap wrap"> <div class="faa1">功能</div> <div class="title"> <article>测试</article> <article>测试</article> <article>测试</article>

拖动鼠标改变div层的大小宽度

<html> <head> <title>拖动鼠标改变div层的大小宽度-石家庄色彩顾问-亿诚</title> <meta content="text/html; charset=gb2312" http-equiv="Content-Type"> <style> { box-sizing: border-box; moz-box-sizing: border-box } #testDiv {

jQuery实现鼠标拖动改变Div高度

最近项目中需要在DashBoard页面做一个事件通知栏,该通知栏固定位于页面底部,鼠标拖动该DIV实现自动改变高度扩展内容显示区域. 以下是一个设计原型,基于jQuery实现,只实现了拖动效果,没有做页面美化,可以根据需求做相应修改. 直接上代码 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quo

TableView头视图高度问题

www.cnblogs.com/ihojin/p/tableHeaderView-resizeheight.html 有这么一种需求,在列表顶端显示一些别样的数据,而这个别样的数据则需要通过一个别样的 View 来展现,它便是 UITableView 的 tableHeaderView. 倘若 tableHeaderView 里的内容很固定,高度不要随着内容的不同而改变,这样还好. 如果,高度是需要动态改变的,某些人(比如我)可能就会遇到这样一个难题: 已经给 view 中的每个子 view 设

iOS8下动态改变Cell高度以及iOS8的动态类型理解

在iOS8中,苹果给出了一个激动人心的特性,UITableView 的 Self Sizing Cells.对于开发者来说,这是一个很值得一试的特性,在iOS8以前,如果需要在UITableViewCell中展示动态的内容,必须每次计算内容所占高度,然后赋值给UITableView的height. iOS8中如何使用此特性呢?基本有三步: 针对自定义Cell进行Layout Constraints设置 设置estimatedRowHeight 这是UITableView的RowHeight为UI