========
动画
Core Animation笔记,基本的使用方法 - Core Animation笔记,基本的使用方法:1.基本动画,2.多步动画,3.沿路径的动画,4.时间函数,5.动画组。
awesome-ios-animation -iOS Animation 主流炫酷动画框架(特效)收集整理 收集整理了下iOS平台下比较主流炫酷的几款动画框架。
awesome-animation - 在内的十多位童鞋们一起发起的一起动画开源组正式成立啦Github组织名称:Animatious,这是我们第一期成员先前开源的一些动效库,我们的第一个合作开源项目正在紧锣密鼓的准备请大家期待设计和代码的碰撞吧。
侧滑与右滑返回手势
SloppySwiper - iOS系统自带的UINavigationController要7.0才支持,但不过该手势只能从屏幕左侧边缘识别,如果要扩大到整个屏幕范围怎么办?配合一个SloppySwiper无需代码就可以轻松实现。此库支持iOS5.0以上版本(另外:Nav的title滑动不明显,本人写了2个类似的控件),SloppySwiper-demo :代码方式与storyboard方式。
SCNavigation - UINavigation可以右滑返回,隐藏UINavigationBar。
UINavigationController-YRBackGesture - 支持右滑返回手势,标题栏不动。
GHSidebarNav - 现在比较流行使用侧开(侧滑)菜单设计。试了不少控件,感觉GHSidebarNav最成熟,尤其对纯代码创建的界面兼容性最好。在Storyboard中使用GHSidebarNav侧开菜单控件。
iOS-Slide-Menu - 能够类似Facebook和Path那样弹出左右边栏侧滑菜单,还支持手势。多种可以自定义的属性 (非常不错)。
ECSlidingViewController - 侧滑菜单。
JASidePanels - 侧滑菜单,有左右菜单,有pop功能,支持手势侧滑,本人使用中:简单。
animated-tab-bar - 让 Tabbar items能显示萌萌的动画。
tabbar图标动画 - tabbar上图标的动画实现,源码推荐说明。
SideMenu - swift实现,一款带动画效果可定制 Slide Menu,可以学习其动画实现思路。P.S. 对于Hamburger式菜单,虽然很常用,不过,苹果并不鼓励使用,甚至有开发小组对其弊病用自家上线应用前后数据对比进行了抨击。
RESideMenu - 侧开菜单,qq类似。
JHMenuTableViewDemo - 仿网易邮箱列表侧滑菜单。
SlideMenuView - 炫酷侧滑菜单布局框架,Android版本的一致实现。
QQConfiguration - swift,QQ-iPhone端框架,左侧菜单栏拖动手势。
KGFloatingDrawer - 侧滑菜单,qq类似,KyleGoddard/KGFloatingDrawer:一款适合于大屏手机或平板的浮动抽屉式导航界面组件。效果很赞- 侧开菜单,qq类似(与RESideMenu类似)。
AIFlatSwitch - 一款带平滑过渡动画的 Switch 组件类,类相同风格的 Menu/BackHamburgerButton,类似相同风格的 Menu/Closehamburger-button.
JHChainableAnimations - 在应用中采用链式写出酷炫的动画效果, 使代码更加清晰易读,利用block实现的链式编程。
WXGSlideMenuDemo - 个简单实现侧拉(侧滑)菜单的小demo,供初学者共同学习、练习使用。
PKRevealController - PKRevealController是一个可以滑动的侧边栏菜单(可向左、向右或者同时向两侧),只需手指轻轻一点(或者按一下按钮,但是这样滑动时不够炫酷),这类控制的其他库,而PKRevealController是最棒的。安装简便,高度定制且对手势识别良好。可以当做一个标准控件用在iOS SDK中。
SwiftPages - 高可定制类似 Instagram 视图滑动切换功能类库。API 简单、易用。
FlipBoardNavigationController - FlipBoardNavigationController。
MMDrawerController - 最多人用的一个有关侧边“抽屉”导航框架,里面还有很多你意想不到的交互效果,侧滑。
UIWebView翻页返回效果 - UIWebView翻页返回效果(变通方法)。
LLSlideMenu - 一个弹性侧滑菜单,弹性动画原理借鉴该项目中阻尼函数实现。
FlowingMenu.swift - 菜单如此出场方式(橡皮筋弹跳式动画)好玩又有趣。
gif动画
UIImageView-PlayGIF - UIImageView-PlayGIF。
YLGIFImage - YLGIFImage。
YLGIFImage-Swift - YLGIFImage-Swift。
gifu.Swift - gifu.Swift高性能GIF显示类库。
droptogif - droptogif视频拖拽到应用窗口后自动转换为 GIF 动画(其转换进程动画效果也超赞)。
JWAnimatedImage.swift - JWAnimatedImage.swift集中了目前主流的 GIF 显示库(如 FLAnimatedImage,Gifu 等)的优点,进行重构,代码短小精悍。而且使用了新的 frame 提取算法。
SwiftyGif - 高性能 Gif 播放引擎。
PHImageKit.swift - 出自 Product Hunter 开发小组的带下载、缓存的 GIF 播放组件库。使用简单又方便。
其他动画
popping - popping是一个POP 使用实例工程
PopMenu - 用POP动画引擎写的Sina微博的Menu菜单。
MMTweenAnimation - facebook POP的自定义动画扩展(基于POPCustomAnimation) 提供10种函数式动画。
ZQLRotateMenu - 这是一个旋转视图的选择器。
CoolLoadAniamtion - 一个简单但是效果不错的loading动画。
SequenRotateAnimation - 一个简单的loading次序动画。
SYAppStart - App启动插画的自定义过度。
VJDeviceSpecificMedia -如何根据设备选择不同尺寸的图片 可以通过设置不同尺寸设备的LaunchImage,来使得App适配这些设备,要是在不同不同尺寸设备上使用不同大小的图片,则需要在代码中一一判断,然后加载。
RMParallax - RMParallax是一个app启动页引导开源项目,除了细微的翻页视差效果,描述文本的过渡也非常美观(版本新特性、导航页、引导页)。
ADo_GuideView - 转动的用户引导页(模仿网易bobo) 因为没有从app包里抓到@3x的图片,建议在iPhone5模拟器运行,保证效果~ (版本新特性、导航页、引导页)。
CoreNewFeatureVC - 版本新特性(引导页),1.封装并简化了版本新特性启动视图!2.添加了版本的本地缓存功能,3.集成简单,使用方便,没有耦合度,4.支持block回调(版本新特性、导航页、引导页)。
MZGuidePages - 自己写的通用导航页,可以直接引入工程使用,请参考案例(版本新特性、导航页、引导页)。
Wizardry.swift - 可重用的方法和框架实现向导式用户界面管理。(版本新特性、导航页、引导页)。
ABCIntroView - ABCIntroView是一个易于使用的入门类,让你到达主屏幕之前介绍你的应用程序(版本新特性、导航页、引导页)。
Spring - Spring是一个Swift编写的开源库,可简化Swift编写的iOS动画。支持shake、pop、morph、squeeze、wobble、swing、flipX、flipY、fall、squeezeLeft、squeezeRight以及squeezeDown等多种动画形式,用 IBDesignable 让使用者可以在 Xcode 中快速设置动画效果。
KYBezierBounceView - 手势控制贝塞尔曲线,取消手势贝塞尔曲线会有反弹效果。
cadisplaylinkanduibezierpath - CADisplayLink结合UIBezierPath的神奇妙用。
KYCuteView - 实现类似QQ消息拖拽消失的交互+GameCenter的浮动小球效果,分析。
KYWaterWaveView - 一个内置波浪动画的UIView,里面有鱼跳跃水溅起来的效果。
WaveLoadingView - iOS 唯一完美的波浪进度加载指示器,实现说明。
KYPingTransition - 实现圆圈放大放小的转场动画,可以根据自己的需要使用Paper中的弹性效果,有Material风格。
KYNewtonCradleAnimiation - 牛顿摆动画。
LayerPlayer - 一款全面展示核心动画 API 示例项目(上架应用)。包括 CALayer, CAScrollLayer, CATextLayer, AVPlayerLayer, CAGradientLayer, CAReplicatorLayer, CATiledLayer, CAShapeLayer, CAEAGLLayer, CATransformLayer, CAEmitterLayer 等使用的互动演示。
JGTransitionCollectionView - swift,基于集合视图扩展实现完成自动布局及单元项 Flip式动画效果(效果很赞)。组件使用方便、自然(只需设置集合视图数据源的标准方式即可)。
KYShareMenu - 带弹性动画的分享菜单。
Context-Menu.iOS - 可以为app的菜单添加漂亮的动画内容,可自定义icon,并可根据自己的喜好设计单元格和布局。
DeformationButton - 一个简单的变换形状动画按钮。
UnReadBubbleView - UnReadBubbleView是一个能够拖拽并拉长的气泡视图。拖拽到一定的长度会消失,可以通过系数设置来控制拖拽的长度。气泡也支持多种属性设置。
PPDragDropBadgeView - 实现了类似于QQ 5.0 水滴拖拽效果. 支持iOS 5.0+ ARC,气泡能够带有数字标识,同时支持消失block方法。消失时还带有消失效果动画。
GiftCard-iOS - 礼品卡购买的炫酷动画。
SDCycleScrollView - 无限循环自动图片轮播器(一步设置即可使用)。
HYBLoopScrollView - HYBLoopScrollView实现自动循环滚动,一般用于展示广告页。微信在贴纸宣传处就使用了轮播。
BuildAnInfiniteCarousel - 自己动手造无限循环图片轮播,教程。
iCarousel - iCarousel是一个类,它继承于UIView。用于简化实现各种类型的旋转木马(分页滚动视图),无限轮播 ,iOS开发之多图片无缝滚动组件封装与使用。
KIPageView - 无限循环PageView,横向TableView,无限轮播。
简单实用的无限循环轮播图 - 简单实用的无限循环轮播图 。
CPInfiniteBanner - 是一个循环播放的组件,可以左右无缝滑动,3个imageview实现。高效图片轮播,两个ImageView实现。
XTLoopScroll - 用两个 timer 三个重用的 view 实现无限循环 scrollView,1自动轮播 2点击监听回调当前图片 3手动滑动后重新计算轮播的开始时间, 良好的用户体验。
HotGirls - 卡片动画。
tispr-card-stack - swift 卡片风格动画切换组件及完整交互示例。
ZLSwipeableViewSwift - swift 卡片堆叠效果的实现(ZLSwipeableView)】可实现类似Tinder和Potluck应用程序的卡片堆叠效果,该项目基于ZLSwipeableView objective-c实现。1.自定义动画。2.自定义滑动切换。3.自定义方向。4.撤销。
Koloda - 基于卡片的 Tinder-style 动画效果示例。精细绝人。更赞的是额外附了详细开发教程 How We Built Tinder-Like Koloda Animation in Swift网页链接 。Yalantis 出品动画程序款款精品。
QQPersonalInfoTransition - 仿照QQ的转场。
KYAnimatedPageControl - 除了滚动视图时PageControl会以动画的形式一起移动,点击目标页还可快速定位。支持两种样式:粘性小球和旋转方块。
KDIntroView - swift 动态介绍视图框架及演示。另外两个相似的类库是 RazzleDazzle和 Presentation,择需使用。
RazzleDazzle - 【IFTTT开源Swift编写的帧动画框架--RazzleDazzle】RazzleDazzle 是IFTTT开源的一个iOS帧动画框架,非常适用于APP初次使用时的介绍和引导信息。JazzHands是UIKit一个简单的关键帧基础动画框架,可通过手势、scrollview、KVO等控制动画,被IFTTT应用在IFTTT for iPhone上。
Presentation - 一个类似RazzleDazzle的框架。
FillableLoaders - 基于 CGPaths 可定制个性化填空式装载类库。附水波上涨式示例。
SXWaveAnimate - 实现非常美观的灌水动画。
LSPaomaView - 可循环滚动的较长文字,跑马灯,效果很好,一句话集成。
SIFloatingCollection_Swift - 可定制的 Apple Music 风格浮动形状动画组件及演示。
Cheetah - 易用、高可读链式动画类库。另一个类似类库是DKChainableAnimationKit。
CKWaveCollectionViewTransition - swift, UICollectionViewController之间切换的动画。
TKSubmitTransition - 基于 UIButton 的登录加载、返回按钮转场动画组件及示例。
ARAnimation - ARAnimation 对 Core Animation 进行了封装, 帮助 iOS 开发者能更加便捷的在项目中使用动画。
CardsAnimationDemo - swift,《使用 UICollectionView 实现的一个卡片动画》不是直接操作所有 UIView 和 CALayer 的 transform3D 属性来实现整个效果的,而是使用 UICollectionView 来完成所有的视图管理和实现。
TKRubberIndicator.swift - 一个很不错的 page control。
渐变特效文字 - 做了一个仿iPhone的移动滑块来解锁的渐变特效文字,还有一个类似ktv歌词显示的文字特效。
TTGEmojiRate.swift - TTGEmojiRate.swift以Emoji表情为基础绘图,Swift开源项目: TTGEmojiRate的实现。
HYAwesomeTransition - 模仿格瓦拉的转场效果。
CardAnimation.swift - CardAnimation 是国人开发的一个用 Swift 实现卡片垂直翻转动画的 Demo,实现思路。
TaskSwitcherDemon - 是仿造iOS9的Task Switcher做出来的动画效果, 具体的实现思路可参照这篇文章。
CoreAnimationCode.swift - 提供了 "iOS Core Animation Advanced Techniques" 书籍中的代码实例, 方便开发者们进行参考学习。
UIViewXXYBoom.swift - 一个炫酷好玩的爆炸效果,如何实现这个效果。
ZLSwipeableViewSwift -ZLSwipeableView - ZLSwipeableViewSwift在Tinder and Potluck中的动画效果实现思路(连续卡片翻页效果),最贴心的是作者提供了OC和Swift两个版本来供开发者使用,非常丝滑顺畅的效果。
RYCuteView - 用UIBezierPath实现果冻效果。教程
IBAnimatable.swift - 第三方开源库IBAnimatable可以帮助我们在Interface Builder和Swift Playground里面设计UI, 交互, 导航模式, 换场和动画。
MotionMachine.swift - 功能强大、优雅、模块化动画库。
circle-menu.swift - 动画效率很赞的圆形缩放菜单演示及类库。
BWWalkthrough.swift - BWWalkthrough.swift界面切换中加入灵动的动画效果。
hamburger-button.swift - hamburger-button.swift一个汉堡包动画关闭按钮。
HamburgerButton.swift - HamburgerButton.swift一个汉堡包动画返回按钮。
MDCSwipeToChooseView - MDCSwipeToChooseView翻牌子效果。
STLBGVideo - STLBGVideo让您的视图控制器的自定义backgroundvideo,实现说明1、实现说明2。
Advance.swift - 简单易用、功能强大的动画框架库。在手势交互、帧动画、自定义动画及仿真类型将是不错的选择。
PanelDemo - 仪表盘,模拟汽车的车速仪表盘,一些简单的数学知识。
HWAnimationTransition_Swift 、HWAnimationTransition_OC - 类似于格瓦拉启动页中的放大转场动画(objective-C && Swift)。教程
MYBlurIntroductionView - 方便好用的引导类库,在App注册登录页面可以用到。
ZFCityGuides - 实现City Guides的动画效果,数字动态变化的动画效果。
NumberMorphView.swift - 可爱的数字补间(变身)动画类库。
DisplaySwitcher.swift - 两个集合视图在不同布局(平铺和列表)间平滑切换。Yalantis 出品。
DynamicButton.swift - 一套完整、且带动画过渡的图标按钮库。
TKDotSegment.swift - 是一个带有圆点动画的 segment。
LiquidLoader.swift - 液态加载动画的轻量级 UI 组件。
15DaysofAnimationsinSwift - 15DaysofAnimationsinSwift动画。
Interpolate.swift - 手势驱动交互式转场动画框架库。这个很专业,且非常有意思。
INPopoverController - OS X可自由定制的 Popover 视图。
WZXJianShuPopDemo - 仿、淘宝等等的View弹出效果,已封装好,使用简单。实现原理
PeekPop.swift - 3DTouch动画组件。
fantastic-ios-animation.swift - 基于 UI 组件类别分类,且带精彩动画效果的 iOS 组件库集合。
pop - facebook出品的非常赞的动画引擎。
========
网络相关
网络连接
AFNetworking - ASI不升级以后,最多人用的网络连接开源库,iOS网络编程之AFNetworking使用,iOS开发下载文件速度计算 , AFNetworking 3.0迁移指南 , AFNetworking2.0源码解析<一> 、AFNetworking2.0源码解析<二>、AFNetworking源码解析<三>、AFNetworking源码解析<四>。
Alamofire.swift - Alamofire是AFNetworking的作者mattt新写的网络请求的swift库。Alamofire 最佳实践
AlamofireObjectMapper.swift - 将Alamofire JSON响应数据 转为swift对象。
RxAlamofire.swift - 为Alamofire提供函数响应式(FRP)调用接口,以优雅的方式使用Alamofire进行网络请求。
YTKNetwork - 是基于 AFNetworking 封装的 iOS网络库,提供了更高层次的网络访问抽象。相比AFNetworking,YTKNetwork提供了以下更高级的功能:按时间或版本号缓存网络请求内容、检查返回 JSON 内容的合法性、文件的断点续传、批量的网络请求发送、filter和插件机制等。
HYBNetworking - 基于AFN封装的网络库,可以通用。基于AFNetworking封装网络库说明目前已经提供了通用的GET/POST、上传、下载API等。
LxFTPRequest - 支持获取FTP服务器资源列表,下载/上传文件,创建/销毁ftp服务器文件/目录,以及下载断点续传,下载/上传进度,自动判断地址格式合法性跟踪等功能!国人开发,QQ:349124555。
HSDownloadManager - HSDownloadManager,下载音乐、视频、图片各种资源,支持多任务、断点下载。
MutableUploadDemo - 模拟需求:图文混编,要求用户选择图片后就上传,可选择多图,并行上传,用户确定提交后后台执行,必须全部图片上传完才能提交文字。
WTRequestCenter - 方便缓存的请求库,提供了方便的HTTP请求方法,传入请求url和参数,返回成功和失败的回调。 UIKit扩展提供了许多不错的方法,快速缓存图片,图片查看,缩放功能, 颜色创建,设备UUID,网页缓存,数据缓存等功能。 无需任何import和配置,目前实现了基础需求。
MMWormhole - Message passing between iOS apps and extensions 2个iOS设备之间通信。
socket.io-client-swift - WebSockect 客户端类库。开放的通讯协议,有利于构建强大地跨平台应用。
Transporter - swift, 短小、精悍、易用的多文件(并发或顺序)上传和下载传输库。还支持后台运行、传输进程跟踪、暂停/续传/取消/重试控制等功能。
STNetTaskQueue - STNetTaskQueue Objective-C 可扩展网络请求管理库。
CocoaAsyncSocket - 在iOS开发中使用socket,一般都是用第三方库AsyncSocket,不得不承认这个库确实很强大,使用教程。
AsyncSocket - AsyncSocket。
Socket通信 - 通过AsyncSocket封装的Socket通讯方法,简单实用,通俗易懂,初学者不能错过 。
GCDAsyncSocket - GCDAsyncSocket ,不错的Demo。
Just - 小而美的 HTTP 类。功能简单、直接、完整且健壮性高-- swift。
Future - 基于微框架设计思想的异步执行及结果响应类,代码即简单又干净-- swift。
MZDownloadManager - 下载管理。
DVR - 针对网络请求的测试框架,超实用的工具。且支持 iOS, OSX, watchOS 全平台。
HFDownLoad - iOS开发网络篇之文件下载、大文件下载、断点下载:NSData方式、NSURLConnection方式、NSURLSession下载方式下载方式具体的思路、区别见Blog 。
Pitaya.swift - Pitaya 是纯 Swift 写的 iOS 网络库,支持 Basic Authorization、SSL 钢钉、HTTP raw body / JSON body、快速文件上传等特性,并通过内置 JSONNeverDie 实现了对 JSON 的完全支持,开箱即用。中文文档
starscream.swift - starscream.swift:WebSocket客户端类库。
SwiftNet.swift - 基于 RxSwift 和 Alamofire 的网络请求简易封装库。
Networking.Swift - 使用简单、功能惊喜,基于 NSURLSession 的网络封装。
图像获取
SDWebImage - SDWebImage 网络图片获取及缓存处理。
Kingfisher - 纯 Swift 实现的类 SDWebImage 库,实现了异步下载和缓存图片。
KFSwiftImageLoader - Swift,一个图像缓存加载库。
FastImageCache - FastImageCache 网络图片获取及缓存处理,iOS图片加载速度极限优化—FastImageCache解析。
EGOCache - 十分知名的第三方缓存类库,可以缓存NSString、UIImage、NSImage以及NSData。除此,如果还可以缓存任何一个实现了
网络聊天
XMPPFramework - XMPPFramework openfire聊天。
SXTheQQ - 用xmppFramework框架编写QQ程序,主要为了练习通讯的一些原理,界面比较渣 必须要先在本地配置好环境才可以运行。
环信 - 给开发者更稳定IM云功能。8200万用户考验,好用!(暂无及时语音、视频通话)
融云 - 即时通讯云服务提供商。(暂无及时语音、视频通话)
容联云通讯 - 提供基于互联网通话,视频会议,呼叫中心/IVR,IM等通讯服务。
ChatSecure-iOS - 基于XMPP的iphone、android加密式聊天软件,chatsecure官网 。iOS代码1,iOS代码2,iOS中文版。
MessageDisplayKit - 仿微信聊天,参考JSQMessagesViewController。(国人写)
JSQMessagesViewController - 聊天 。
MessageKit.swift - 消息 UI 库 JSQMessagesViewController 的 Swift 版。
SunFlower - 环信聊天demo,比较多功能 。
BlueTalk蓝牙聊天 - 以MultipeerConnectivity为基础, 实现了简单的蓝牙聊天。
jchat-swift - 一个聊天 App,具有完备的即时通讯功能,JChat 的功能基于极光 JMessage SDK 来开发。
网络测试
Reachability - 苹果提供过一个Reachability类,用于检测网络状态。但是该类由于年代久远,并不支持ARC。该项目旨在提供一个苹果的Reachability类的替代品,支持ARC和block的使用方式。iOS网络监测如何区分2、3、4G
Reachability.swift - 用于替换苹果的 Reachability 类,可以方便地检测当前是否联网以及具体的联网状态。
SimpleCarrier - 简单的运营商信息获取!。
NetReachability - swift2.0 简单的方法检查网络连接的连通性,提供通知中心集成接口。
NetworkEye - 一个网络调试库,可以监控App内HTTP请求并显示请求相关的详细信息,方便App开发的网络调试。
SimpleBS.swift - 网络测试小工具。
RealReachability -iOS下的实际网络连接状态检测,解决“如何判断设备是否真正连上互联网?而不是只有网络连接”的问题。
========
网页框架
Perfect.swift - Perfect 致力于 Swift 服务端应用,从打造专业应用服务器开始。Swift服务端编程:Perfect项目上手指南
swift-http - Swift HTTP Server,又一个 Swift 服务器,最大的亮点是支持 Docker 部署。
Swifton - Swifton是一个优秀的Swift on Rails 的Web Framework。
Taylor.swift - Taylor一个swift的轻量级的http服务器的库。
NetworkObjects.swift - NetworkObjects.swift轻量版HttpServer框架,跨平台解决方案。
vapor.swift - vapor.swift:swift的服务器库 vapor。
Kitura.swift - Kitura.swift:安装、使用步骤及文档最为清晰地来自 IBM Swift 开发组的开源 Web 服务器。此外,IBM 云服务 Bluemix 也为 Swift 打开通路。
========
WebView与WKWebView
MGTemplateEngine - MGTemplateEngine比较象 PHP 中的 Smarty、FreeMarker 和 Django的模版引擎,是一个轻量级的引擎,简单好用。只要设置很多不同的HMTL模版,就能轻松的实现一个View多种内容格式的显示,对于不熟悉HTML或者减轻 工作量而言,把这些工作让设计分担一下还是很好的,也比较容易实现设计想要的效果。
NJKWebViewProgress - 一个 UIWebView 的进度条接口库,UIWebView 本身是不提供进度条的。
GTMNSString-HTML - 谷歌开源的用于过滤HTML标签。
js-in-ios - webView与js的交互。D3Generator - D3Generator根据dict字典生成对象。 适用webview和push推送时,根据后台传回字典实现动态跳转。实现说明
IOSCallJsOrJsCallIOS - IOSCallJsOrJsCallIOS:利用iOS7.0后出来的JavaScriptCore framework,webview与Js交互是常见的需求。OC版本与swift版本。《OC JavaScriptCore与js交互》,《Swift JavaScriptCore与js交互》。
WKWebViewTestDemo.swift - WKWebViewTestDemo:WKWebView新特性及JS交互,文章讲解。
React.swift - 启发自 React 的纯 Swift 函数版基于 UIKit 封装类库。这种结构是否似曾相识。