qunten / ios-core-animation-advanced-techniques Goto Github PK
View Code? Open in Web Editor NEW翻译
翻译
1、11章基于定时器的动画-->11.1定时帧
清单11.2 通过测量没(每)帧持续的时间来使得动画更加平滑
2、11章基于定时器的动画-->11.2物理模拟
我们实际上实(是)在按需要在计算。意义在于我们可以根据用户输入实时修改动画的逻辑,或者和别的实
时动画系统例如物理引擎进行整合。(Ps:(例如物理引擎)加上括号效果更好)
但即使模拟2D的物理效果就已近(已经)极其复杂
3、12章性能调优
但是这些仅仅阶段(阶段)仅仅发生在你的应用程序之内,在动画在屏幕上显示(显示在屏幕上)之前仍然有
更多的工作。
4、13章高效绘图
这就避免了阻塞用户交互而且能够利用多核心新片(芯片)来更快地绘制。
Hola! @vlan1000 has created a ZenHub account for the AttackOnDobby organization. ZenHub is the only project management tool integrated natively in GitHub – created specifically for fast-moving, software-driven teams.
To get set up with ZenHub, all you have to do is download the browser extension and log in with your GitHub account. Once you do, you’ll get access to ZenHub’s complete feature-set immediately.
ZenHub adds a series of enhancements directly inside the GitHub UI:
Still curious? See more ZenHub features or read user reviews. This issue was written by your friendly ZenHub bot, posted by request from @vlan1000.
非常感谢整理并提供的学习资料
请问第5章-变换的第一个demo
@interface ViewController ()
@property (nonatomic, weak) IBOutlet UIView *layerView;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
//rotate the layer 45 degrees
CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI_4);
self.layerView.layer.affineTransform = transform;
}
@end
演示的是view的transform属性,怎么设置给了layer的transform,affineTransform
是自己自定义的一个layer的属性吧?
但是性能碰撞都本地化了
原文:
but the performance impact is localized.
这里的 localized
感觉是 局部 的意思,可能是指:但是性能冲突被限制的很好 ?
如题,比较好奇。在这个仓库搜了一圈没找到类似的说明。
『于是这就解释了UIKit是如何禁用隐式动画的:每个UIView对它关联的图层都扮演了一个委托,并且提供了-actionForLayer:forKey的实现方法。当不在一个动画块的实现中,UIView对所有图层行为返回nil,但是在动画block范围之内,它就返回了一个非空值』,实际上是返回NSNull对象,而非nil。
layer 通过向它的 delegate 发送 actionForLayer:forKey: 消息来询问提供一个对应属性变化的 action。delegate 可以通过返回以下三者之一来进行响应:
它可以返回一个动作对象,这种情况下 layer 将使用这个动作。
它可以返回一个 nil, 这样 layer 就会到其他地方继续寻找。
它可以返回一个 NSNull 对象,告诉 layer 这里不需要执行一个动作,搜索也会就此停止。
http://objccn.io/issue-12-4/
原文:
如果contentsScale设置为1.0,将会以每个点1个像素绘制图片,如果设置为2.0,则会以每个点2个像素绘制图片,这就是我们熟知的Retina屏幕。(如果你对像素和点的概念不是很清楚的话,这个章节的后面部分将会对此做出解释)。
修改:
如果contentsScale设置为1.0,将会以每个点1个像素绘制图片,如果设置为2.0,则会以每个点4个像素绘制图片,这就是我们熟知的Retina屏幕。(如果你对像素和点的概念不是很清楚的话,这个章节的后面部分将会对此做出解释)。
个人理解: scale为2.0表示的是横向2个像素,竖向2个像素,那就是4个像素
我自己测试时用的是如下代码转换的
(GLKMatrix4)matrixFrom3DTransformation:(CATransform3D)transform
{
GLKMatrix4 matrix = GLKMatrix4Make(transform.m11, transform.m12, transform.m13, transform.m14,
transform.m21, transform.m22, transform.m23, transform.m24,
transform.m31, transform.m32, transform.m33, transform.m34,
transform.m41, transform.m42, transform.m43, transform.m44);
return matrix;
}
我按照代码例子,设置了方块的光亮和阴影,可是运行后没有出来效果,没有光亮和阴影,方块没有任何变化
我发现很多人在找源码和素材,@AttackOnDobby 看看能不能把地址加到译文仓库的README.md上,方便大家学习.
仓库地址 https://github.com/cocos543/iOS-Core-Animation-Advanced-Techniques-Resource
欢迎Star
Rt
我觉得本书内容和你翻译的资料都是极好的,但在github上的阅读体验不是太好...
不知你对将本书放上gitbook有什么看法呢?
https://www.gitbook.com/explore
如果你愿意的话,我希望可以尽绵薄之力将其重新排版放上去(我也能借此学习下markdown),译者写你的名字,不会做其他用途。
你认为呢?
感谢你的劳动!
第3章图层几何学
锚点处:
会让人误以为这里的anchorPoint指的是父图层的anchorPoint。
再原文意思应该是:
之前提到过,视图的center属性和图层的position属性都指定了图层anchorPoint相对于父图层的位置
隐式动画 97行
用来在每次颜色变化结束之后切换到另一个旋转90的动画。代码见清单7.3,运行结果见图7.2。
代码和说明都是90度 但是配图可能是45度的
https://github.com/AttackOnDobby/iOS-Core-Animation-Advanced-Techniques/blob/master/5-%E5%8F%98%E6%8D%A2/%E5%8F%98%E6%8D%A2.md#仿射变换
第五章变化中,仿射变换中,关于矩阵的描述有些问题。
原文如下:
用CGPoint的每一列和CGAffineTransform矩阵的每一行对应元素相乘再求和,就形成了一个新的CGPoint类型的结果。
应为:
用CGPoint的每一_行_和CGAffineTransform矩阵的每一**列**对应元素相乘再求和,就形成了一个新的CGPoint类型的结果。
感谢你开源出这么好的东西, 辛苦了! 能否把你的翻译的书做成gitbook放在自己博客站里, 不提供下载,只有网页版gitbook, 就像这样
http://numbbbbb.gitbooks.io/-the-swift-programming-language-/content/index.html
详见15章, 我没看到15.1的代码, 而且你贴出来的15.2的代码也不是15.2里的. 请校对一下, 谢谢.
图层性能章节 258行到301行这段代码在 scrollView 滑动的时候程序会crash
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.