1.為什么要自己擼一個UI庫?
就好比做菜
從原材料做任何菜本來都很簡單
非在別人做好的菜上來改
改來改去達(dá)不到效果說太難了
草
你丫有種你用紅燒肉改一回鍋肉試試?
世界上總有這么一批賤B
就想撿現(xiàn)成
越撿路越難還不知道反省
話說有一人拜師學(xué)廚
他想做道回鍋肉給他老娘吃
徒弟:師傅,我想做道回鍋肉,該怎么辦呢?
師傅:你準(zhǔn)備點(diǎn)五花肉,煮一下切來炒熟就好了
徒弟:可是那個難度太高了,再說時間太緊了,師傅,這盤
紅燒肉也是五花的,我初學(xué),你還是教我怎么從紅燒
肉改回鍋肉吧。等以后我水平提高了,有閑功夫了,
再系統(tǒng)學(xué)習(xí)從生肉開始做回鍋肉!
師傅:..................................
2.咱肯定是站在巨人的肩膀上,自己擼道行不夠還不知道擼個什么出來。所以呢,一開始打算直接擼duilib,結(jié)果發(fā)現(xiàn)可能這貨不夠巨人雖然看起來所有功能都有了,但是用起來總覺得差了點(diǎn)什么。然后在喵上了chromium,泥馬折騰好久發(fā)現(xiàn)提出一個ui庫是不是太麻煩了,,,也投降了,然后瞅上了skia這貨,有硬件加速啊,泥馬結(jié)果能力還是欠缺了點(diǎn),一口不能吃成胖子,,,然后開始擼uileeihcy,這個思想夠豐富的庫。發(fā)現(xiàn)也不是不能直接用。
好吧,我確實(shí)欠抽,,,
然后開始失敗了無數(shù)次,放棄了無數(shù)次的自己擼一個想法又出現(xiàn)了,這次實(shí)事求是的擼吧。
今天主要看了下大概,不管是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.個控件的私有消息是自己檢查產(chǎn)生派發(fā)的。
初步看起來都有一個共性,就是控件的消息自己處理,不過uileeihcy里邊有的設(shè)計(jì)比較有特點(diǎn),需要進(jìn)一步分析以便理解他的設(shè)計(jì)思想:
