作者luke8197 (数学家相术学家)
看板MacDev
标题[请益] 用纯程式码建立App的问题
时间Mon Dec 5 14:57:25 2016
各位前辈大家好,最近在写程式的时候遇到一个问题
就是单一个View要呈现的东西太多,当时想到的是用纯码的方式去建立整个页面
後面因为一些navigation的问题,也决定继续用纯码的方式来建立後续页面
写了一阵子以後突然觉得好像在这块上好像没有摸得很熟
所以想说来请教一下各位前辈
用纯的程式码在写UI的时候,已经感觉到的优点
・不会有一些什麽属性忘记设定,全部都可以在Code里面找到问题
・在版本控管的时候可以方便的的知道这个UI大概有哪些地方被修改
感觉到但是还没有体会到的问题
・在设定Layout的时候可能没那麽简单
目前因为还没有做得很深,如果要修改之前的UI都还来得及
所以趁现在想先来请问一下,如果用纯程式码在写Code除了以上的问题
还会不会遇到什麽比较麻烦或是比较难以克服的问题呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 211.22.203.228
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MacDev/M.1480921048.A.D0C.html
1F:推 darktt: 我觉得就只是无法马上看到结果比较麻烦而已,小改就要连 12/05 15:02
2F:→ darktt: 续来回build几次才能解决 12/05 15:02
因为目前还没遇到太深入的问题,想说在深入以前先看看会遇到怎样的问题
目前感觉是去计算版面配置可能会比较复杂一点
※ 编辑: luke8197 (211.22.203.228), 12/05/2016 15:17:23
3F:推 Blueshiva: 如果是调整小地方,可以用Tweaks这个pod会方便很多 12/05 15:17
5F:推 kyushu: 跟darktt所说一样,建议最好都用code写,xib, stoaryboar 12/05 16:31
6F:→ kyushu: d最好少用甚至别用 12/05 16:31
7F:→ zonble: 其实现在用纯 code 写还比较快 12/05 16:45
8F:→ zonble: 直接在 playground 里头 live coding 12/05 16:45
9F:→ zonble: playgound 写完再放回专案里头 12/05 16:46
今天在设计一个对话视窗的小细节就是用zonble大讲的方法,写好以後再放进去。
不过目前观察到一个现象就是会有很多几乎是重复的程式码
不知道各位前辈怎麽管理这部分的程式码?
在Github上有看过有人是用extension的方式,把各个部分切开
例如说TableViewController的Delegate方法就移到那边去
大概像这样
class deviceColletionTableViewController : UITableViewController{
...
}
extension deviceCollectionTableViewController{
//Table view data source
}
想请教一下各位前辈都是怎麽去管理的呢?
※ 编辑: luke8197 (59.127.213.53), 12/05/2016 23:34:09
10F:推 wawalian: 请问全用code刻UI的话要如何做MVC呢? 12/06 01:25
11F:→ tkdmaf: 全用code或不用都是「view」的层级吧!不影响 MVC 啊。 12/06 01:54
12F:推 darktt: 重复程式码的话我会用Closure来包重复的地方,像是连续建 12/06 06:13
13F:→ darktt: 立多个相同的UILabel等等, 12/06 06:13
14F:→ darktt: 另外我自己是在使用另外一个方法来区分每一个建立View的 12/06 06:15
16F:→ darktt: Method中标示出几个区块,而且里面的变数是可以重复使用的 12/06 06:18
17F:→ darktt: 像是常用的color或frame等等 12/06 06:18
原来如此,这样就可以把重复的部分提出来
也不会有DRY的问题
感谢前辈提供的思路,我在思考一下其他对策
18F:→ wawalian: @tkdmaf 意思是会分两个档案去做v跟c吗?我以为是全写 12/06 08:56
19F:→ wawalian: 在一起...@@ 12/06 08:56
tkdmaf的意思应该是
MVC的概念应该不是只是程式码写在一起或分开
而是在功能上的切割?
即使我完全都用Storyboard来做画面,也不应该把功能混在一起
之前看白胡子的教学,有几堂在做计算机的,这个概念有做比较实际的解说
※ 编辑: luke8197 (211.22.203.228), 12/06/2016 09:30:59
20F:→ wawalian: 我知道mvc是依照功能区分阵营,只是个人习惯将mvc分在 12/06 10:26
21F:→ wawalian: 不同档案,在多人共同开发时较不会遇到冲突 12/06 10:26
22F:推 Ghosso: 你也可以view写在不同档案阿 用code刻ui跟mvc关系不大 12/06 13:14
24F:→ jazzter: 参考这个plugin 全code UI 满好用 ,不用一build 12/06 13:26
25F:→ nat99up: 想请问各位大大storyboard可以不用摸很熟没关系吗 12/06 15:33
感觉storyboard的优点是在视觉化
对於还没参与过的专案可以比较好上手,大概知道每个view是在做什麽的
不过缺点是很多属性都要找到设定的地方,如果忘记设定就会比较麻烦。各有各的优缺点
公司会有什麽要求也不一定,所以还是了解一下会比较好。
※ 编辑: luke8197 (59.127.213.53), 12/06/2016 22:02:44
26F:推 ppppman: 都会最好 视情况用不同方式 12/06 23:51
27F:推 jimmygio: 我以前也是纯code,现在则是能用storyboard就尽量用stor 12/09 21:01
28F:→ jimmygio: yboard 12/09 21:01
29F:→ jimmygio: 感觉只是习惯不同而已 12/09 21:02
30F:推 annie1729: 推楼上,Storyboard 用习惯还挺好用的 12/10 21:12
31F:推 Esvent: 以前也是全code 现在则是能用ib就用ib 12/12 12:30
32F:→ Esvent: 可以省掉很多冗长的ui设定code 还不错 12/12 12:30