以某点为中心缩放视图
来源:互联网 发布:矩阵的秩代表什么 编辑:程序博客网 时间:2024/04/27 18:03
问题:
以手势捏合缩放视图,缩放的中心点为,手势的中心,或者某一点。
说明:
IOS中各个View的层次关系,。特别是,要清除的知道,当前view的frame与superView的bounds是一个坐标系。
具体来讲,AnchorPoint 是iOS CoreAnimation层的事物。图层的anchorPoint属性是一个CGPoint值,它指定了一个基于图层bounds的符合位置坐标系的位置。Anchor point指定了bounds相对于position的值,更重要的是,它是变换的支点。AnchorPoint值的范围是0 – 1 ,可以理解为AnchorPoint表示了支点位置的坐标占bounds的比例。
iOS CoreAnimation 坐标系原点位于左上角,因此,我们可以很容易的知道,如果想要一个图层的支点位于图层左上角,那么它的AnchorPoint应该是(0, 0)。相应的如果想要支点位于左下角,AnchorPoint应该是 (0, 1)。而默认的中心点的AnchorPoint是(0.5, 0.5)。
方法:
根据手势的中心,更新锚点:
- (void)adjustAnchorPointForGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer{ //UIGestureRecognizerStateBegan意味着手势已经被识别 if (gestureRecognizer.state ==UIGestureRecognizerStateBegan) { //手势发生在哪个view上 UIView *piece = gestureRecognizer.view; //获得当前手势在view上的位置。 CGPoint locationInView = [gestureRecognizer locationInView:piece]; piece.layer.anchorPoint =CGPointMake(locationInView.x / piece.bounds.size.width, locationInView.y / piece.bounds.size.height); //根据在view上的位置设置锚点。 //防止设置完锚点过后,view的位置发生变化,相当于把view的位置重新定位到原来的位置上。 CGPoint locationInSuperview = [gestureRecognizer locationInView:piece.superview]; piece.center = locationInSuperview; }}
注意: 在缩放之后,移动之后,在恢复出事视图的时候,一定要注意锚点。。。。
0 1
- 以某点为中心缩放视图
- iOS 设置锚点,以锚点为中心缩放
- WPF : 以鼠标指针为中心缩放
- WPF : 以鼠标指针为中心缩放
- 以鼠标为中心缩放图片
- [转]以鼠标为中心缩放图片
- winform 以光标指向点为中心 通过鼠标滚轮对图片进行缩放
- MFC+Direct2D以屏幕中心为中心缩放的实现
- iOS MKMapView 以某一坐标为中心进行缩放
- 使用MMDrawerController以TabBarController为中心视图实现抽屉效果
- ArcGIS for android以任意点为中心放大缩小
- 以自我为中心
- 以客户为中心
- MFC GDI+实现以鼠标为中心缩放图片(并且可以拖动)
- Flex使用Scroller组件实现以鼠标为中心的缩放
- MFC GDI+实现以鼠标为中心缩放图片(并且可以拖动)
- js实现鼠标滚轮滚动以当前鼠标焦点为中心缩放
- MFC GDI+实现以鼠标为中心缩放图片(并且可以拖动)
- 转载:《TypeScript 中文入门教程》
- ant design后台模板-1.前端环境搭建
- 算法导论程序5--雇佣问题(Python)
- 软测工作日志记录
- layer.js 封装使用, 运用在thinkphp
- 以某点为中心缩放视图
- 使用Xshell软件登录linux太慢的问题怎么解决?
- webmagic学习笔记(3)---eclipse下导入源码及第一个小爬虫简单分析
- Git 使用说明
- MapReduce基础
- 关于魔术引号、addslashes() 和mysql防注入。(整理)
- ℃江让您从精通到入门:QQ强制下线逻辑实现
- jQuery的datatable遇到的问题,
- 问题,解决不了