一、UIScrollView 双指放大手势,双击放大实现

  在设置UIScrollView的frame后、maxZoomScale 和 minZoomScale之后,UIScrollView会自然支持双指捏合的手势,自然支持放大缩小

  对于双击的手势,只要添加一个tap双击的识别器,然后在响应的时候,计算出来放大缩小之后的中心点(需要加上当前点击位置的向量),得到最终的rect就行了

二、Autolayout的问题

  如果使用了Autolayout,如果UISCrollView中的内容不需要放大,那么可以使用下面的思路

    用一个容器View,包含所有显示的内容,并且设置好显示内容的约束,在横向和竖向的方向上,约束都是满足的,可以计算出宽高

    然后设置好UISCrollView和容器之间的约束,也就是edges相等

    通过上面的设置,UISCrollView能够自然计算出来contentSize的大小

  如果内容需要实现zoom,那么上面的容器View和UISCrollView之间的关系一定不能使用Autolayout来限制,一定要在某个layoutsubviews中设置好 容器View 的frame等于 UISCrollView 的bounds

  这样的方式,能够避免放大缩小内容之后,Autolayout的约束带来的副作用,比如不能拖动,不能方法缩小等。

UIScrollView 在Autolayout下使用的一些问题的更多相关文章

  1. UIScrollView在AutoLayout下的滚动问题

    使用Storyboard编写UI,设置支持AutoLayout. 在其中的一个场景上,添加一个UIScrollView,在对应的代码里增加 - (void)viewDidLoad { [super v ...

  2. 实现一个在autolayout下有宽度约束后,自动确定高度的view

    我曾经遇到过一个问题:需要实现一个自定义的label(类似于UILabel),同时需要兼顾UILabel的大小自适应的特性.这个label通常宽度是固定的,通过autolayout指定其宽度约束,但不 ...

  3. 示例详解:UIScrollview 与 Autolayout 的那点事

    前言 自从写了介绍Masonry那篇文章以后 就一直有人对UIScrollView的那个例子不是很理解 UIView *container = [UIView new]; [scrollView ad ...

  4. UIScrollView使用autolayout 垂直滚动

    转自:http://dadage456.blog.163.com/blog/static/30310744201491141752716 1.创建一个空白的UIViewController .将UIS ...

  5. UIScrollView的AutoLayout约束

    首先UIScrollview包含自身的frame和contentSize二个部分.frame决定其展示给用户的可见区域,contentSize决定其整个内容的大小.如果frame的宽高小于conten ...

  6. UIScrollview 与 Autolayout 的那点事

    原文  http://www.cocoachina.com/ios/20151221/14757.html 前言 自从写了 介绍Masonry 那篇文章以后 就一直有人对UIScrollView的那个 ...

  7. UITableViewcell autolayout下动态高度

    项目中最经常使用的一个UI就是UITableView了.iOS7.8进一步优化了复用机制,用起来相当爽.配合Autolayout,适配工作减轻了非常多. 曾经做适配工作都是在heightForRow里 ...

  8. iOS UIScrollView使用Autolayout

    最近项目在迭代更新的时候,需要在之前用Autolayout写的界面里添加一个button,添加完这个button后,iPhone5,iPhone4显示不全了.遇到整个问题后很自然就想到了用UIScro ...

  9. Autolayout下使用代码改变frame无效

    在使用自动布局的情况下,子视图的边框无法改变.就算调用setFrame方法也不会有效果.自动布局引擎对于子视图的大小和位置有最终的决定权.如果你需要在运行时改变边框,那就得用NSLayoutConst ...

  10. iOS开发——Autolayout下动态调整单元格高度

    情景描述: 有时候我们希望更新某一个单元格的数据,通常的做法是使用reloadData方法更新整个单元格.但是对一些情况是不适用的或者说实现起来比较麻烦.比如说这种简单的"点开"一 ...

随机推荐

  1. centos 6.4下fdisk分区、格式化、挂载新硬盘

    centos 6.4下fdisk分区.格式化.挂载新硬盘 作者: cat 日期: 2013 年 9 月 10 日 发表评论 (0) 查看评论 1.# fdisk -l 查看当前磁盘信息,就会发现最下面 ...

  2. AI数字人互动大屏:如何改变我们的生活?

    随着科技的飞速进步和人工智能技术的日益成熟,智能制造正在成为推动制造业转型升级的核心力量. 互动数字人具有强大的情感分析能力,可以根据观众的表情.语气等实时反馈,作出恰当而富有情感的回应.这不仅让每一 ...

  3. 国内十大活跃报表 BI 产品深度点评

    目前国内市场上的报表 BI 工具琳琅满目,看起来也各有特点,这给选型工作带来了一些困扰,本文就一些较活跃的报表 BI 产品进行点评,对于不太熟悉这些产品和技术的同学,可作为参考资料. 这里选了十个产品 ...

  4. 重新点亮shell————变量[三]

    前言 简单介绍一下shell的变量. 正文 变量的定义 变量名的命名规则 字母.数字.下划线 不以数字开头 变量的赋值 在赋值的时候不能出现空格 a =123,在等号前面有一个空格,那么会报错. 这是 ...

  5. lattice crosslink开发板mipi核心板csi测试dsi屏lif md6000 fpga 常见问题解答

    1. 概述 CrossLink开发板,是用Lattice的芯片CrossLink 家族系列的,LIF-MD6000-6JM80I.该芯片用于桥接视频接口功能,自带2路MIPI硬核的功能,4 LANE  ...

  6. 6 张图带你彻底搞懂分布式事务 XA 模式

    简介: XA 协议是由 X/Open 组织提出的分布式事务处理规范,主要定义了事务管理器 TM 和局部资源管理器 RM 之间的接口.目前主流的数据库,比如 oracle.DB2 都是支持 XA 协议的 ...

  7. 双引擎驱动Quick BI十亿数据0.3秒分析,首屏展示时间缩短30%

    ​简介:在规划中,Quick BI制定了产品竞争力建设的三大方向,包括Quick(快)能力.移动端能力和集成能力.针对其中的产品"报表查看打开慢""报表开发数据同步慢&q ...

  8. [GF] 与 Laravel 设计相近的 Golang 框架 GoFrame

    在 GoFrame (gogf/gf) 框架中有明确的代码分层设计,分别是 api, service, dao, model. model (结构模型)一般由工具自动生成,用于定义数据结构,只可被 m ...

  9. [Gse] 高效的Golang中文分析库推荐

    优点:用法简单,支持各种语言,基本满足需求. 缺点:默认分词字典文件有 8M 需测试使用速度. 我们可以直接封装一个简单的辅助方法来实现分词功能: // @author cnblogs.com/far ...

  10. [FAQ] Cannot use object of type MongoInt64 as array

    此类情况出现在 需要使用字符串/数组,实际却使用了对象. 解决方式是调试数据,对数据类型进行转换即可. MongoInt64 对象提供 __toString 方法,那么可以强转成 64 位 integ ...