1.为什么要自己撸一个UI库?
就好比做菜
从原材料做任何菜本来都很简单
非在别人做好的菜上来改
改来改去达不到效果说太难了
草
你丫有种你用红烧肉改一回锅肉试试?
世界上总有这么一批贱B
就想捡现成
越捡路越难还不知道反省
话说有一人拜师学厨
他想做道回锅肉给他老娘吃
徒弟:师傅,我想做道回锅肉,该怎么办呢?
师傅:你准备点五花肉,煮一下切来炒熟就好了
徒弟:可是那个难度太高了,再说时间太紧了,师傅,这盘
红烧肉也是五花的,我初学,你还是教我怎么从红烧
肉改回锅肉吧。等以后我水平提高了,有闲功夫了,
再系统学习从生肉开始做回锅肉!
师傅:..................................
2.咱肯定是站在巨人的肩膀上,自己撸道行不够还不知道撸个什么出来。所以呢,一开始打算直接撸duilib,结果发现可能这货不够巨人虽然看起来所有功能都有了,但是用起来总觉得差了点什么。然后在喵上了chromium,泥马折腾好久发现提出一个ui库是不是太麻烦了,,,也投降了,然后瞅上了skia这货,有硬件加速啊,泥马结果能力还是欠缺了点,一口不能吃成胖子,,,然后开始撸uileeihcy,这个思想够丰富的库。发现也不是不能直接用。
好吧,我确实欠抽,,,
然后开始失败了无数次,放弃了无数次的自己撸一个想法又出现了,这次实事求是的撸吧。
今天主要看了下大概,不管是duilib、chromium、uileeihcy,他们都是把ui抽象出了一个基类:duilib的control chromium的view uileeihcy的object,不同的是有些control不是container,有些具有这些功能。chromium和uileeihcy都具base都具有container的功能,那咱就也要有这功能。chromium和uileeihcy的基类中有具有的功能:
1.属性;2.container;3.eventtarget;4.layout management;5.个控件的私有消息是自己检查产生派发的。
初步看起来都有一个共性,就是控件的消息自己处理,不过uileeihcy里边有的设计比较有特点,需要进一步分析以便理解他的设计思想: