![2cb244e355826b2e5d6d53157d0c017f.png](https://i-blog.csdnimg.cn/blog_migrate/308c1034153eb495a5cdb02ca97c24f2.jpeg)
Eureka是github中非常著名的一个iOS界面组件库,它的的特点是所有组件都是列表Cell的子类,称之为Row;所有组件都放在列表中。利用这些已有的组件我们可以快速按功能布局App的UI;Eureka的另一的强大特性是所有组件都可以随意组合和扩展,而且可以很方便的按自己的需求自定义所需功能的组件。
本Chat中,本猫将向大家展示Eureka自带通用组件的使用方法,以及按需求自定义我们自己的组件,最终我们将进一步演示Eureka的强大功能:组件的扩展功能,并以扩展功能为基础,实现随心所欲的酷炫动画效果!而这一切都超乎寻常的简单。
1.什么是Eureka库
![86e9470725fc68f29b17f7881ce0512c.png](https://i-blog.csdnimg.cn/blog_migrate/8b986798cdd47596cfefdc54a9d8eb4f.jpeg)
著名的Eureka库存在于github中已经有些年头,Star已经接近8k了。单从这一点就可以看出有多少人欣赏并使用它。那么Eureka到底是什么?它可以为我们的App带来哪些好处呢?
![3a2baf0da43d74020286c3837066f9a9.gif](https://i-blog.csdnimg.cn/blog_migrate/76a0e48a8a5a8dfc0a514777d771178b.gif)
Eureka不是一个“自创字”,它在英语里意思是:“有了!找到了!”
拿到我大中华博大精深的汉语语境里可以理解为:“就是它了”!!!
Eureka是一个包罗万象的UI组件库,其最大的特点是将组件包装成Row,随意嵌入和组合到你的App中。那么Row又是什么?Row实际最终派生自UITableViewCell,并且其遵守着若干简单的协议。它其实是一个个独立的UI组件。这些无论是自带的Row、社区中第三方Row或是自己定制的Row都统统放在一个潜在的UITableView中,构成你的UI界面,并支持着你的后台逻辑功能。
![e93ec00d8a5ef0fd238523605bfe374d.gif](https://i-blog.csdnimg.cn/blog_migrate/5a971673ad2b1fe2b04ce9cd5c4e9066.gif)
如果仅仅是这些,那你太小看Eureka了!Eureka还有如下几个超赞的特点:
Eureka不像CocoaTouch或其他任何iOS库的代码布局,它更类似与Ruby中的DSL语言的概念:你可以像搭积木一样在代码层面任意组合、替换和修改已有Row的代码,超级方便。如果不熟悉Ruby之类的动态语言也不要紧,后面本猫会给大家演示。
Eureka可以非常方便的编写自定义的Row,实现独特的UI和功能;
Eureka已有Row可以作为独立组件组合到新的Row中,这样你就不用重复造轮子啦;
Eureka本身和Row的代码都是开源的,我们可以很轻松的对原有Row功能进行升级和扩展,超赞的!后面本猫也会给大家演示这一特性哦。
Eureka本身核心代码使用的是消息绑定机制,利用Objective-C的块或Swift中的闭包机制,异常灵活。
Eureka的学习成本很低,易学易用。
综上所述,你可以想象一下这会给我们自己的App的UI和逻辑功能带来多大的便利,可以少写多少代码啊!?
而且这得减少多少BUG啊!?
![0ea76b10199427e1ffa3d48e6f6e31b7.png](https://i-blog.csdnimg.cn/blog_migrate/54d3593df47fc4c2246214e1aa674d0a.jpeg)
小伙伴们看到这里是否有些小激动呢?
![d9dc84c649bb973c973bbdd715d5731e.png](https://i-blog.csdnimg.cn/blog_migrate/ed7cd233f4b8b0b4e707cc3842945a6c.jpeg)
别着急,hold on! 本猫将在下面中就上述这些内容为大家娓娓道来 ;)
Eureka的详细介绍大家可以到github中查看:
https://github.com/xmartlabs/Eureka