记一次面试后的经历,求解篇

本文源自一次面试经历,探讨了为何要在主线程操作UI,哪些UIView属性改变能产生动画效果,以及如何实现自定义的UIView动画。强调在iOS开发中遵循UIKit类只在主线程使用的原则,以及通过拦截UIView的actionForLayer:forKey:方法实现自定义动画。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文涉及到的几个问题来源于一次面试经历 ,当时回答的一塌糊涂,所以回来就看看官方文档和一些博客文章,并问下同学看看他们如何回答这几个问题.


希望各位 iOS 开发同学,在学习使用  Cocoa的一些 Framework 时多看看一些官方文档说明,有时候官方文档都有明确说明,我就是没有看, so 我面试时回答不出来.


声明 : 本文代码部分来源于 objc 中国 View-Layer 协作  https://objccn.io/issue-12-4/ 
GitHub :  https://github.com/ZhaoBingDong/CAAnimaiton
一 : 为什么跟 UI 相关的 API 要在主线程 (个人理解)
```
Note


For the most part, use UIKit classes only from your app’s main thread. This is particularly true for classes derived from UIResponder or that involve manipulating your app’s user interface in any way.


在大多数的时候 , 在你的 app 里使用 UIKit 的类只能在主线程. 尤其适用于类UIResponder源于或涉及操纵你的应用程序的用户界面。


苹果 Foundation 和 UIKit 大部分 API 不是线程安全的 因为程序涉及到多线程地方毕竟是少数应用场景 苹果给每个方法属性加这种线程锁 线程同步锁 自旋锁 什么的 太麻烦
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dzb1060545231

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值