84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
我想做一个这样的功能,把一些控件的属性设置放到一个单独的文件里,分开来,就像html和css那样,
这样写界面的时候就比较简单了
不用一大串一大串的设置属性。
现在的问题是,这个属性文件没有代码自动补全,比较麻烦,怎么样才能实现代码补全的功能?还有个问题是对属性的解释有没有什么高效的办法?一个一个属性去解析然后设置,也比较麻烦我用了kvc,但是kvc似乎不能解决所有问题
闭关修行中......
你這種檔案要程式碼補全沒有現成工具,只能自己寫Xcode插件,把sdk裡的所有關鍵字和系統方法名稱放進去。或是用文字編輯器,一般文字編輯器都比較方便定義自己的語法高亮和程式碼補全。
解釋屬性貌似沒有更簡便的方法。不過不需要一個一個事先定義好,可以在運行時用 respondsToSelector 或 performSelector: NSSelectorFromString(set...)来设置属性值。对css里的属性名进行首字母大写然后前面加个 "set" 就是方法名了。class_copyMethodList 可以取得某個類別的所有方法。 要注意避免 crash。
respondsToSelector
performSelector: NSSelectorFromString(set...)
class_copyMethodList
你這種寫css還不如直接用 autolayout , 第三方的 autolayout 可以用程式碼和設定檔定義約束,跟 css 定義差不多。
之前已經有人在css佈局這塊做了很多研究,你可以研究下他們的程式碼。例如 https://github.com/gavinkwoe/... 例如 https://github.com/hackers-pa... 例如 https://github.com/tolo/Inter...。 Facebook之前也有個不過幾年前都放棄那個專案了。
像css那樣創建的話,你可以創建一堆基類即可,或者分類
你這種檔案要程式碼補全沒有現成工具,只能自己寫Xcode插件,把sdk裡的所有關鍵字和系統方法名稱放進去。或是用文字編輯器,一般文字編輯器都比較方便定義自己的語法高亮和程式碼補全。
解釋屬性貌似沒有更簡便的方法。不過不需要一個一個事先定義好,可以在運行時用
respondsToSelector
或performSelector: NSSelectorFromString(set...)
来设置属性值。对css里的属性名进行首字母大写然后前面加个 "set" 就是方法名了。class_copyMethodList
可以取得某個類別的所有方法。 要注意避免 crash。你這種寫css還不如直接用 autolayout , 第三方的 autolayout 可以用程式碼和設定檔定義約束,跟 css 定義差不多。
之前已經有人在css佈局這塊做了很多研究,你可以研究下他們的程式碼。例如 https://github.com/gavinkwoe/... 例如 https://github.com/hackers-pa... 例如 https://github.com/tolo/Inter...。
Facebook之前也有個不過幾年前都放棄那個專案了。
像css那樣創建的話,你可以創建一堆基類即可,或者分類