如何解决IOS 动画中 Autolayout 与View Transforms的冲突

IOS 的动画放大与缩小,并非按照找它的中心点放大和缩小,而是左上角 。我分析了下原来是Autolayout
与View Transforms的冲突造成的。


- (void) addSubviewWithZoomInAnimation:(UIView*)view duration:(float)secs option:(UIViewAnimationOptions)option
{
// first reduce the view to 1/100th of its original dimension
CGAffineTransform trans = CGAffineTransformScale(view.transform, 0.01, 0.01);
view.transform = trans; // do it instantly, no animation
[self addSubview:view];
// now return the view to normal dimension, animating this tranformation
[UIView animateWithDuration:secs delay:0.0 options:option
animations:^{
view.transform = CGAffineTransformScale(view.transform, 100.0, 100.0);
}
completion:nil];
}

- (void) removeWithZoomOutAnimation:(float)secs option:(UIViewAnimationOptions)option
{
[UIView animateWithDuration:secs delay:0.0 options:option
animations:^{
self.transform = CGAffineTransformScale(self.transform, 0.01, 0.01);
}
completion:^(BOOL finished) {
[self removeFromSuperview];
}];
}



解决方案: 

Disable auto
layout:

self.imageView.translatesAutoresizingMaskIntoConstraints
= YES;

【1】

http://stackoverflow.com/questions/12943107/how-do-i-adjust-the-anchor-point-of-a-calayer-when-auto-layout-is-being-used/14105757#14105757

如何解决IOS 动画中 Autolayout 与View Transforms的冲突,码迷,mamicode.com

时间: 2024-12-26 07:21:27

如何解决IOS 动画中 Autolayout 与View Transforms的冲突的相关文章

全面理解iOS开发中的Scroll View

转自:http://mobile.51cto.com/hot-430409.htm 可能你很难相信,UIScrollView和一个标准的UIView差异并不大,scroll view确实会多一些方法,但这些方法只是UIView一些属性的表面而已.因此,要想弄懂UIScrollView是怎么工作之前,你需要了解 UIView,特别是视图渲染过程的两步. 光栅化和组合 渲染过程的第一部分是众所周知的光栅化,光栅化简单的说就是产生一组绘图指令并且生成一张图片.比如绘制一个圆角矩形.带图片.标题居中的U

IOS中AutoLayout布局与Transform的冲突问题

原文链接见这里: http://stackoverflow.com/questions/12943107/how-do-i-adjust-the-anchor-point-of-a-calayer-when-auto-layout-is-being-used/14105757#14105757 下来讨论的是在AutoLayout布局下,View的Transform被改变时,会触发layout从而引起布局混乱的问题.这些适配问题在IOS8中可能已经不存在,或者至少被弱化了. 问题: AutoLay

(转发)IOS动画中的枚举UIViewAnimationOptions

若本帖转自(博客园·小八究):http://www.cnblogs.com/xiaobajiu/p/4084747.html 可怜目前天朝搜不到什么有价值的东西方便学习,在这里方便初学者. 首先这个枚举属于UIViewAnimation.我们经常使用的函数 是 [UIView animateWithDuration: animations:^{} completion:^(BOOL finished) {}];和[UIView animateWithDuration: animations:^{

(原)IOS动画中的枚举UIViewAnimationOptions

若本帖转出“博客园”请注明出处(博客园·小八究):http://www.cnblogs.com/xiaobajiu/p/4084747.html 可怜目前天朝搜不到什么有价值的东西方便学习,在这里方便初学者. 首先这个枚举属于UIViewAnimation.我们经常使用的函数是 [UIView animateWithDuration: animations:^{} completion:^(BOOL finished) {}];和[UIView animateWithDuration: anim

分分钟解决iOS开发中App启动广告的功能

前不久有朋友需要一个启动广告的功能,我说网上有挺多的,他说,看的不是很理想.想让我写一个,于是乎,抽空写了一个,代码通俗易懂,简单的封装了一下,各种事件用block回调的,有俩种样式的广告,一种是全屏广告,另一种是下面露logo的,类似网页新闻的启动广告.依赖SDWebImage主要用来下载网络的广告图片,一般项目里面网络图片都用的这个框架,所以在此不做过多的阐述.下面让我们来看看我封装的过程,对于新手来说,可以学习一下这种封装的思想. 1.首先建一个继承View的LBLaunchImageAd

iOS动画中的物理知识应用-碰撞检测

碰撞检测 我相信搞iOS得人,多多少少都知道 弹球这个小游戏.撞击不同的点,就能改变其运动的轨迹.对于很多人来说,如果不知道思路可能觉得小球在屏幕中撞来撞去,碰到墙壁就改变运动方向似乎很难实现. 其实这个只需要一点点iOS绘图基础和动画基础,还要一点点物理知识就OK了. 1.速度和位移都是矢量 在2D坐标系中,速度和位移都能分解成在x轴和y轴上的分量 所以可以根据速度在Vx 和 Vy来描述物体的运动情况.界面每次刷新单位时间,利用物体速度分量Vx与Vy的值来计算下次物体出现的位置: 下次X轴坐标

彻底解决iOS项目中 "_OBJC_CLASS_$_XXXService", referenced from: 的相似问题

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbmllcGVuZzEwOQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >这是大家熟悉的开发过程中可能遇到的问题 这是提交源代码到appStore不支持64位设备的提示 本人在提交项目到appStore时发生的的错误,提示必需要支持64的设备,然后自己赶紧进行相关的适应.出现了类似标题的问题,解

彻底解决ios项目中 "_OBJC_CLASS_$_XXXService", referenced from: 的类似问题

这是大家熟悉的开发过程中可能遇到的问题 这是提交源码到appStore不支持64位设备的提示 本人在提交项目到appStore时发生的的错误,提示必须要支持64的设备,然后自己赶紧进行相关的适应,出现了类似标题的问题,解决方法如下: 1.查看Build Phases下的 Link Binary With Libraries是否缺少相应地类库(或者是ios自带的或者外部第三方的,注:外部第三方的先通过右键Add Files to 添加到项目中,然后再在Add Other中选择项目中存在的frame

全面理解iOS开发中的Scroll View[转]

from:http://mobile.51cto.com/hot-430409.htm 可能你很难相信,UIScrollView和一个标准的UIView差异并不大,scroll view确实会多一些方法,但这些方法只是UIView一些属性的表面而已.因此,要想弄懂UIScrollView是怎么工作之前,你需要了解 UIView,特别是视图渲染过程的两步. AD: 可能你很难相信,UIScrollView和一个标准的UIView差异并不大,scroll view确实会多一些方法,但这些方法只是UI