René's URL Explorer Experiment


Title: GitHub - imqiuhang/CoreAnimationLearning: CoreAnimation学习的愉快探讨,详见下方的README · GitHub

Open Graph Title: GitHub - imqiuhang/CoreAnimationLearning: CoreAnimation学习的愉快探讨,详见下方的README

X Title: GitHub - imqiuhang/CoreAnimationLearning: CoreAnimation学习的愉快探讨,详见下方的README

Description: CoreAnimation学习的愉快探讨,详见下方的README. Contribute to imqiuhang/CoreAnimationLearning development by creating an account on GitHub.

Open Graph Description: CoreAnimation学习的愉快探讨,详见下方的README. Contribute to imqiuhang/CoreAnimationLearning development by creating an account on GitHub.

X Description: CoreAnimation学习的愉快探讨,详见下方的README. Contribute to imqiuhang/CoreAnimationLearning development by creating an account on GitHub.

Opengraph URL: https://github.com/imqiuhang/CoreAnimationLearning

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository
route-controllerfiles
route-actiondisambiguate
fetch-noncev2:95bb2cc5-c12b-94f7-1cc1-ec27d1e71465
current-catalog-service-hashf3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb
request-idE2A4:16CB32:104435C:1616C3C:6A4C68DA
html-safe-noncec55370e6e0f843352bd40340a1a7279235a56b7fa27a5c4cac23400396d2672f
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFMkE0OjE2Q0IzMjoxMDQ0MzVDOjE2MTZDM0M6NkE0QzY4REEiLCJ2aXNpdG9yX2lkIjoiNjAxNzg4MjgyMDAwNDU3MTM1NCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac859e1b908f896972f07e2a197e280e2b301a8bebbc7024efe2b5dab8286e02c2
hovercard-subject-tagrepository:160802452
github-keyboard-shortcutsrepository,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location//
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/imqiuhang/CoreAnimationLearning
twitter:imagehttps://opengraph.githubassets.com/377dc69695d64112cb4b75c07a1649b4671d43718bab1b685e83139c1d3f1503/imqiuhang/CoreAnimationLearning
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/377dc69695d64112cb4b75c07a1649b4671d43718bab1b685e83139c1d3f1503/imqiuhang/CoreAnimationLearning
og:image:altCoreAnimation学习的愉快探讨,详见下方的README. Contribute to imqiuhang/CoreAnimationLearning development by creating an account on GitHub.
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None3d11bb817438277de2a940854450e83a7d32b6aeb5014e9e6b00a6423900251c
turbo-cache-controlno-cache
go-importgithub.com/imqiuhang/CoreAnimationLearning git https://github.com/imqiuhang/CoreAnimationLearning.git
octolytics-dimension-user_id9158636
octolytics-dimension-user_loginimqiuhang
octolytics-dimension-repository_id160802452
octolytics-dimension-repository_nwoimqiuhang/CoreAnimationLearning
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id160802452
octolytics-dimension-repository_network_root_nwoimqiuhang/CoreAnimationLearning
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release14099438da5379150f15a2892474c7c7e6c0e55e
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/imqiuhang/CoreAnimationLearning#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fimqiuhang%2FCoreAnimationLearning
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fimqiuhang%2FCoreAnimationLearning
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=imqiuhang%2FCoreAnimationLearning
Reloadhttps://github.com/imqiuhang/CoreAnimationLearning
Reloadhttps://github.com/imqiuhang/CoreAnimationLearning
Reloadhttps://github.com/imqiuhang/CoreAnimationLearning
imqiuhang https://github.com/imqiuhang
CoreAnimationLearninghttps://github.com/imqiuhang/CoreAnimationLearning
Notifications https://github.com/login?return_to=%2Fimqiuhang%2FCoreAnimationLearning
Fork 3 https://github.com/login?return_to=%2Fimqiuhang%2FCoreAnimationLearning
Star 17 https://github.com/login?return_to=%2Fimqiuhang%2FCoreAnimationLearning
Code https://github.com/imqiuhang/CoreAnimationLearning
Issues 0 https://github.com/imqiuhang/CoreAnimationLearning/issues
Pull requests 0 https://github.com/imqiuhang/CoreAnimationLearning/pulls
Actions https://github.com/imqiuhang/CoreAnimationLearning/actions
Projects https://github.com/imqiuhang/CoreAnimationLearning/projects
Security and quality 0 https://github.com/imqiuhang/CoreAnimationLearning/security
Insights https://github.com/imqiuhang/CoreAnimationLearning/pulse
Code https://github.com/imqiuhang/CoreAnimationLearning
Issues https://github.com/imqiuhang/CoreAnimationLearning/issues
Pull requests https://github.com/imqiuhang/CoreAnimationLearning/pulls
Actions https://github.com/imqiuhang/CoreAnimationLearning/actions
Projects https://github.com/imqiuhang/CoreAnimationLearning/projects
Security and quality https://github.com/imqiuhang/CoreAnimationLearning/security
Insights https://github.com/imqiuhang/CoreAnimationLearning/pulse
https://github.com/imqiuhang/CoreAnimationLearning
Brancheshttps://github.com/imqiuhang/CoreAnimationLearning/branches
Tagshttps://github.com/imqiuhang/CoreAnimationLearning/tags
https://github.com/imqiuhang/CoreAnimationLearning/branches
https://github.com/imqiuhang/CoreAnimationLearning/tags
46 Commitshttps://github.com/imqiuhang/CoreAnimationLearning/commits/master/
https://github.com/imqiuhang/CoreAnimationLearning/commits/master/
3d/Masonryhttps://github.com/imqiuhang/CoreAnimationLearning/tree/master/3d/Masonry
3d/Masonryhttps://github.com/imqiuhang/CoreAnimationLearning/tree/master/3d/Masonry
AnimationLearn.xcodeprojhttps://github.com/imqiuhang/CoreAnimationLearning/tree/master/AnimationLearn.xcodeproj
AnimationLearn.xcodeprojhttps://github.com/imqiuhang/CoreAnimationLearning/tree/master/AnimationLearn.xcodeproj
AnimationLearn.xcworkspacehttps://github.com/imqiuhang/CoreAnimationLearning/tree/master/AnimationLearn.xcworkspace
AnimationLearn.xcworkspacehttps://github.com/imqiuhang/CoreAnimationLearning/tree/master/AnimationLearn.xcworkspace
AnimationLearnhttps://github.com/imqiuhang/CoreAnimationLearning/tree/master/AnimationLearn
AnimationLearnhttps://github.com/imqiuhang/CoreAnimationLearning/tree/master/AnimationLearn
AnimationLearnTestshttps://github.com/imqiuhang/CoreAnimationLearning/tree/master/AnimationLearnTests
AnimationLearnTestshttps://github.com/imqiuhang/CoreAnimationLearning/tree/master/AnimationLearnTests
AnimationLearnUITestshttps://github.com/imqiuhang/CoreAnimationLearning/tree/master/AnimationLearnUITests
AnimationLearnUITestshttps://github.com/imqiuhang/CoreAnimationLearning/tree/master/AnimationLearnUITests
Podshttps://github.com/imqiuhang/CoreAnimationLearning/tree/master/Pods
Podshttps://github.com/imqiuhang/CoreAnimationLearning/tree/master/Pods
.gitignorehttps://github.com/imqiuhang/CoreAnimationLearning/blob/master/.gitignore
.gitignorehttps://github.com/imqiuhang/CoreAnimationLearning/blob/master/.gitignore
Podfile.lockhttps://github.com/imqiuhang/CoreAnimationLearning/blob/master/Podfile.lock
Podfile.lockhttps://github.com/imqiuhang/CoreAnimationLearning/blob/master/Podfile.lock
README.mdhttps://github.com/imqiuhang/CoreAnimationLearning/blob/master/README.md
README.mdhttps://github.com/imqiuhang/CoreAnimationLearning/blob/master/README.md
podfilehttps://github.com/imqiuhang/CoreAnimationLearning/blob/master/podfile
podfilehttps://github.com/imqiuhang/CoreAnimationLearning/blob/master/podfile
READMEhttps://github.com/imqiuhang/CoreAnimationLearning
https://github.com/imqiuhang/CoreAnimationLearning#coreanimation的愉快探讨
https://github.com/imqiuhang/CoreAnimationLearning#author-imqiuhang
https://github.com/imqiuhang/CoreAnimationLearning#相关链接
Apple Core Animation Programming Guide,非常推荐https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CoreAnimation_guide/Introduction/Introduction.html
iOS-Core-Animation-Advanced-Techniques翻译版本https://github.com/AttackOnDobby/iOS-Core-Animation-Advanced-Techniques
core animation pipeline,非常推荐https://developer.apple.com/videos/play/wwdc2014/419/
CAMediaTimingFunction可视化https://github.com/YouXianMing/Tween-o-Matic-CN
layer层级以及坐标系转换https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CoreAnimation_guide/CoreAnimationBasics/CoreAnimationBasics.html#//apple_ref/doc/uid/TP40004514-CH2-SW12
facebook pophttps://github.com/facebook/pop
popping-pop guidehttps://github.com/schneiderandre/popping
AGGeometryKithttps://github.com/agens-no/AGGeometryKit-POP
本文章demo仓库https://github.com/imqiuhang/CoreAnimationLearning
https://github.com/imqiuhang/CoreAnimationLearning#本文目录
CATransaction-显式事务和隐式事务,重点揭示core animation偷偷干的那些事https://github.com/imqiuhang/CoreAnimationLearning#CATransaction-%E4%BA%8B%E5%8A%A1
CAAction-探讨layer被view支配的恐惧https://github.com/imqiuhang/CoreAnimationLearning#layer%E4%B8%8Eview
layer的属性修改与呈现,揭示layer树结构https://github.com/imqiuhang/CoreAnimationLearning#layer%E6%A0%91%E7%BB%93%E6%9E%84
CAAnimation动画整理以及CAMediaTiming,CAMediaTiming相关协议的组合操作https://github.com/imqiuhang/CoreAnimationLearning#%E4%B8%8B%E9%9D%A2%E6%80%BB%E7%BB%93%E4%B8%80%E4%B8%8BCAAnimation%E7%9B%B8%E5%85%B3
定时器动画 -基于CADisplaylink的Facebook pop框架的源码分析https://github.com/imqiuhang/CoreAnimationLearning#Facebook-pop
粒子系统-CAEmitterCellhttps://github.com/imqiuhang/CoreAnimationLearning#%E7%B2%92%E5%AD%90%E7%B3%BB%E7%BB%9F
https://github.com/imqiuhang/CoreAnimationLearning#正文部分
本文章demo仓库https://github.com/imqiuhang/CoreAnimationLearning
https://github.com/imqiuhang/CoreAnimationLearning#catransaction
https://camo.githubusercontent.com/343eb3fb1990869adf1bd725d8d9d34ee9fe7af546faec049da1e8ac22f59e43/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d633530323032343966393136316337652e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970
https://github.com/imqiuhang/CoreAnimationLearning#catransaction-1
https://github.com/imqiuhang/CoreAnimationLearning#事务
https://github.com/imqiuhang/CoreAnimationLearning#结合上面apple文档里说的layer的修改都要事务作为一部分如果不显示提供事务则会创建隐式的事务我们可以理解为事务是对一个可变属性修改的动画载体而在这里我们看到了事务里动画默认是025秒所以结合我们的demo我们已经非常清楚这个过渡动画是如何产生的了
https://github.com/imqiuhang/CoreAnimationLearning#layer修改backgroundcolor-系统提供了一个修改的动画载体-事务-事务的默认动画时长是025秒因此我们看到了layer非常平滑的颜色改变的过渡效果apple牛逼
https://github.com/imqiuhang/CoreAnimationLearning#通过上面catransaction的官方文档只要将layer的属性修改包装在begin和commit之间就行了那么我们试一下吧
https://github.com/imqiuhang/CoreAnimationLearning#例子2
https://camo.githubusercontent.com/95ade95573b4d088540ce059549fbdaa3dabc9025905a22bd6543b4cb904439d/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d383063326435333564333966613930632e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970
https://camo.githubusercontent.com/c3fd4a092b60f7bb20cd26204aefc33a9ad1fec7c54d302a7535c7e33d5c83ac/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d636365613137353566653461373461332e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970
https://github.com/imqiuhang/CoreAnimationLearning#当然了我们在文档的很多地方都看到animatable-properties也就是可动画的属性那么必然也会有不可动画属性只有animatable标记的属性的改变的事务才会有动画这点我们在稍后会有提到animatable一般都在h的属性注释中标记可以在calayer中看到列举两个例子
https://github.com/imqiuhang/CoreAnimationLearning#表格a-1layer的属性和默认动画值
https://github.com/imqiuhang/CoreAnimationLearning#表格b-1-default-implied-cabasicanimationb
https://github.com/imqiuhang/CoreAnimationLearning#表格b-1-代表default-implied-catransitiont
https://github.com/imqiuhang/CoreAnimationLearning#layer与view
https://github.com/imqiuhang/CoreAnimationLearning#这时候我们可能非常大声的喊出因为事务树作用在layer上的而不是view上
https://github.com/imqiuhang/CoreAnimationLearning#那么问题来了我们都知道view只不过是layer的一个代理而已啊文档上也是这么说的啊
https://github.com/imqiuhang/CoreAnimationLearning#所以刚刚清醒又陷入到迷惑之中对哦这和我add一个view还是add一个layer有毛关系哦凭什么view就没隐式动画view里面不也是有个layer负责这些吗
https://github.com/imqiuhang/CoreAnimationLearning#例子3
https://camo.githubusercontent.com/14c9c8426491d6df8dde4d9670c7dee188caff3bc37ea822d825751c93e4be86/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d393634396366626531346265313432642e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970
https://github.com/imqiuhang/CoreAnimationLearning#由此可见和addview还是addlayer并无关系只要是view中的layer换句话说只要layer被view管理那么隐式动画都没有被默认开启那么view是如果禁用layer的隐式动画
https://github.com/imqiuhang/CoreAnimationLearning#例子4
https://github.com/imqiuhang/CoreAnimationLearning#view1的layer的delegate为view时也就是delegate不为nil
https://camo.githubusercontent.com/9da9520c63ac2665ed3470b0870ae688226cf8e0135e997530b566852a55e8e0/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d313734343662383535666435633861332e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970
https://github.com/imqiuhang/CoreAnimationLearning#view1的layer的delegate为nil时
https://camo.githubusercontent.com/3f73afdd626d57ba723e06b17cecabccd37b5594274acfddf6e1bb53eb16f64e/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d333064666637326637386564656139302e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970
https://github.com/imqiuhang/CoreAnimationLearning#但是刚刚官方文档说了layer的改变都会包含在事务也就是说事务的提交肯定无法取消那么how
https://github.com/imqiuhang/CoreAnimationLearning#我想都不需要划重点了看到下面这句我相信已经恍然大悟了
https://github.com/imqiuhang/CoreAnimationLearning#哇好大一堆哦我们划个重点其实抛开七七八八的解释也就是如果这个layer的delegate被实现了则通过delegate的actionforlayerforkey方法获取这期间如果返回了nsnull则停止一切搜索也就是没有action了如果返回nil或者压根没有delegate则通过layer自己的几个字典里通过key来找到action
https://github.com/imqiuhang/CoreAnimationLearning#看到这里我们也明白了其实view通过代理了layer的delegate实现actionforlayerforkey返回nsnull来达到禁用了layer属性改变的默认动画
https://camo.githubusercontent.com/a402231f76674077f3609ecff49d5ff4abf2b18bcf8bb0979e8897bfd2cbcbf8/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d333436643336613162313037633738392e706e673f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970253743696d61676556696577322f322f772f363030
https://camo.githubusercontent.com/ff0b0705908ff9c3e78af3f85d9270da846f12feba5cbf120b4f26b613ee6b24/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d656661333235366635663663366263312e6a7065673f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970253743696d61676556696577322f322f772f363030
https://github.com/imqiuhang/CoreAnimationLearning#我们来看个例子看看究竟action是否永远很死板的返回nsnull
https://github.com/imqiuhang/CoreAnimationLearning#例子5
https://camo.githubusercontent.com/e824f68c47fcb8eada5eb2193fc99fdbb8fd704be6a378382c502edd800ce300/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d306439663631316462393765666638382e706e673f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970253743696d61676556696577322f322f772f363030
https://github.com/imqiuhang/CoreAnimationLearning#可以很明显的看到在动画前预料之中返回nsnullnull但是在动画的上下文中既然返回了一个caaction协议的对象看下面这张图我们打印一下也就是之前文档所说的caanimation的子类
https://camo.githubusercontent.com/97ae63de712eb5b53e20a95c8e1274aa8c81c071670334aadaeaf3510cf9fbd4/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d613132613464326461336462396630612e706e673f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970253743696d61676556696577322f322f772f363030
https://github.com/imqiuhang/CoreAnimationLearning#也就是说在动画的block或者begin-commit之间这个context中view通过layer的delegate竟然又返回了action十分鸡贼至于如何实现的我们不深入探讨了总之view通过这个方法在我们手动调用动画的时候这个方法返回了一个我们想要的动画
https://github.com/imqiuhang/CoreAnimationLearning#另外文档另外一个说明就是多个属性批量提交那么一个属性多次修改会提交多个事务吗答案是不会的运行时只会提交一个结果
https://github.com/imqiuhang/CoreAnimationLearning#layer树结构
https://github.com/imqiuhang/CoreAnimationLearning#其实说到了动画我们不得不说下layer的model-tree结构以及在动画和非动画时候的model-tree结构下面的引用是官方的解释下面两张是apple文档里的官方图片
https://camo.githubusercontent.com/630f706793ca03f10ca0da8e30b478ec81be466cd2123216035edaa8fec8a2ef/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d623839623337333635343531633436352e706e673f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970253743696d61676556696577322f322f772f363030
https://camo.githubusercontent.com/8210a121f4a4b9d97188cc090e445ceaa044be0f194016ee64fd1735ef565d21/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d386130663039383464626634646335342e706e673f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970253743696d61676556696577322f322f772f363030
https://blog.csdn.net/u013282174/article/details/50388546https://blog.csdn.net/u013282174/article/details/50388546
https://github.com/imqiuhang/CoreAnimationLearning#所以总结一下就是动画中的view要获取其最接近的状态比如现在的位置则要通过layerpresentationlayer来获取其中的属性因此需要注意在动画中的元素在处理用户交互判断点击等的-hittest需要用presentationlayer去判断也就是动画中的师徒获取frame等相关属性需要用presentationlayer来获取才是最接近的
https://camo.githubusercontent.com/b7b5cfda0e3909e5f55bb7b39dbcde3d25a773e1310598b5256e815642b495b2/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d313434616163633736356432306565622e706e673f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970253743696d61676556696577322f322f772f363030
https://github.com/imqiuhang/CoreAnimationLearning#下面总结一下caanimation相关
https://camo.githubusercontent.com/8cd1c67cfe9ae2b0ca60335ff67b2b7bb4681443a5c8fc1ff31ed0f76a8296bb/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d333762633363323838663830346133392e706e673f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970253743696d61676556696577322f322f772f363030
https://camo.githubusercontent.com/9c8c06872bf315d107bcfb00048d0027f72cb84f584c0659fc891a9314ce1a5f/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d343333363466346666316562313462632e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970
https://github.com/imqiuhang/CoreAnimationLearning#通过动画对象layer的camediatiming协议控制动画的暂停开始倒退自定义进度等这个是官方的文档的例子
https://github.com/imqiuhang/CoreAnimationLearning#当然设置动画的speed为0就可以通过timeoffset自定义控制动画的进度了
CAMediaTimingFunction可视化https://github.com/YouXianMing/Tween-o-Matic-CN
https://github.com/imqiuhang/CoreAnimationLearning#camediatimingfunction时间函数这个就是调参生成自己的变化曲线没有特别之处可以在camediatimingfunction可视化这个工具中进行参数事实查看曲线
https://github.com/YouXianMing/Tween-o-Matic-CN/raw/master/app.png
https://github.com/imqiuhang/CoreAnimationLearning#facebook-pop
https://github.com/imqiuhang/CoreAnimationLearning#下面我们从第三方开源动画框架pop入手侧面对比下coreanimation
facebook pop,开源动画库https://github.com/facebook/pop
popping-pop guidehttps://github.com/schneiderandre/popping
https://camo.githubusercontent.com/858013efb7199c23cf942f653b8e0b6d2df53b6ccdfad989c20e96ee1d490b23/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d383832656632376537393866366635622e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970
https://camo.githubusercontent.com/38a17137e4f1fa3abce3c6065945658b5b6e2eccef9a4300bc3e75e730a3f51a/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d663563666665643935646364346531312e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970
https://camo.githubusercontent.com/8947b16e70b46098de24bd8f773dc90679b096210565c5e6814632a5223fa355/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d656130663331383131646636373731342e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970
https://camo.githubusercontent.com/b3be4a14715917dce8e1d2b134c912b969451801dc791768be669ea2358e893f/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d366366393530383262333461313334372e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970
https://camo.githubusercontent.com/37e83a29c19d18611e032fd268ee80ce9c0f089c2104d5ba99dbffb7affa84b5/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d356463316636643061633334316364352e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970
https://camo.githubusercontent.com/07aac18410c419afad17d4ee5647b9a7f4156ef6fbee496239494bd16adaa3cd/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d626564353136353233623565326232612e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970
https://github.com/imqiuhang/CoreAnimationLearning#来细谈一下pop的实现从而从侧面对比一下caanimation
https://github.com/imqiuhang/CoreAnimationLearning#例子6
https://camo.githubusercontent.com/6d500ef3d84af5bf3bb25e6269ff04a5bfb7ea8da9773f9c43b97e154b236d8d/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d336432323432353066663365363934322e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970
https://github.com/imqiuhang/CoreAnimationLearning#粒子系统
https://github.com/imqiuhang/CoreAnimationLearning#例子7
https://camo.githubusercontent.com/e2f9784f4c1345e9aa105fbe7a92f1acba7f656d2312d65be1c7c54b58ca8b2d/68747470733a2f2f75706c6f61642d696d616765732e6a69616e7368752e696f2f75706c6f61645f696d616765732f333035383638382d343938336364353436613335623137312e6769663f696d6167654d6f6772322f6175746f2d6f7269656e742f7374726970
https://github.com/imqiuhang/CoreAnimationLearning#总结
↑↑↑↑回到顶部↑↑↑↑https://github.com/imqiuhang/CoreAnimationLearning#readme
↑↑↑↑回到顶部↑↑↑↑https://github.com/imqiuhang/CoreAnimationLearning#readme
↑↑↑↑回到顶部↑↑↑↑https://github.com/imqiuhang/CoreAnimationLearning#readme
ios https://github.com/topics/ios
animation https://github.com/topics/animation
ios-animation https://github.com/topics/ios-animation
pop https://github.com/topics/pop
coreanimation https://github.com/topics/coreanimation
calayer https://github.com/topics/calayer
caanimation https://github.com/topics/caanimation
Readme https://github.com/imqiuhang/CoreAnimationLearning#readme-ov-file
Please reload this pagehttps://github.com/imqiuhang/CoreAnimationLearning
Activityhttps://github.com/imqiuhang/CoreAnimationLearning/activity
3 forkshttps://github.com/imqiuhang/CoreAnimationLearning/forks
Report repository https://github.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Fimqiuhang%2FCoreAnimationLearning&report=imqiuhang+%28user%29
Releaseshttps://github.com/imqiuhang/CoreAnimationLearning/releases
Packages 0https://github.com/users/imqiuhang/packages?repo_name=CoreAnimationLearning
Please reload this pagehttps://github.com/imqiuhang/CoreAnimationLearning
Contributorshttps://github.com/imqiuhang/CoreAnimationLearning/graphs/contributors
Please reload this pagehttps://github.com/imqiuhang/CoreAnimationLearning
Objective-C 100.0% https://github.com/imqiuhang/CoreAnimationLearning/search?l=objective-c
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.