经过一天的折腾,我还是放弃IB用代码构建UI了

2013-07-15 20:12:38 +08:00
 refresh
这玩意儿实在不好调整,项目已经有一半的工作是用代码完成了,主要是对IB不熟悉,算了,还是放弃吧,代码就是工作量大点,但可控。

哭泣中,用于布局的重复性代码太多了

主要原因还是自己没有经过系统性的学习,捂脸...
7487 次点击
所在节点    iDev
54 条回复
PrideChung
2013-07-19 18:07:08 +08:00
项目紧的时候对陌生技术的引入要慎之又慎,血的教训。
phpuser
2013-07-19 22:13:46 +08:00
@PrideChung
@alexrezit

我是看一个巨大无比的TableViewCell里面,很多UILabel,UIImageView直接用tag(不同分段100开头,200开头)让后用不同数组的往不同的tag段里面赋值。

感觉还挺好啊,至少不用拉那么多的IBOutlet,不用一个的赋值。而且 iPad , iPhone 不同的界面不用再拉一次Outlet。

这种场景也不合适么?

那么Tag是干什么用的?其存在的意思是什么?

谢谢。
alexrezit
2013-07-20 09:24:29 +08:00
@phpuser
Tags 的作用就是标记 subview, 只不过是一种很丑陋的实现.
alexrezit
2013-07-20 09:37:47 +08:00
damngood
2013-07-20 10:36:13 +08:00
@alexrezit @pppuser
链接的那篇文章主要是还是反对对于 tag 的滥用, 而不是完全反对使用

只是说如果要使用的话 因该 1)不要滥用 2)尽量使用 macro 或者 enum 来让命名清晰

至于 performance, 我觉得这个影响是微乎其微的, 毕竟一个parent view 不会有太多的 sub view, 就算如果有太多的 sub view, 那首先也应该是内存的瓶颈了..

至于 ugliness, 我个人倒是觉得在 property list 里面加入很多 reference 还不如 tag 来得清爽 -- 纯主观个人看法 :)
refresh
2013-07-20 11:10:15 +08:00
@damngood 我认为tag是一个标识,用于识别subview的,作者的意思是,你不要用tag的保存数据,如果你要保存数据,应该使用属性而非tag。
damngood
2013-07-20 11:12:16 +08:00
@refresh 嗯, 用tag来保存非标识数据就是属于一种滥用
alexrezit
2013-07-20 12:03:21 +08:00
@damngood
是的, 我见过某些国内的开发者用 tag 来记录属性. 我之所以说不要使用 tag 就是因为少有人知道怎么正确并灵活地使用.
allenhsu
2013-07-26 15:12:49 +08:00
在我的经验中,有时候 xib 的作用不是布局而是初始化 views,有时候我会在 xib 里初始化若干 views 用 IBOutlet 链接,此时他们没有父子关系和相对位置关系,仅仅是若干被初始化的独立组件,然后在 viewDidLoad 中来组装他们的父子关系和相对位置。
railgun
2013-07-26 15:46:01 +08:00
@alexrezit @damngood @refresh 同意,在view里存放数据很明显是不符合MVC规则的
refresh
2013-07-29 23:16:55 +08:00
@tab 组件嵌套,消息传递确实很麻烦,正感受到这种麻烦,求解
tgfbeta
2013-07-30 09:32:51 +08:00
刚刚把项目的最核心的view和view controller给整到storyboard。
最大的障碍是: UIView 不能 加subview!不知道水果负责IB的组在想啥……
tokki
2013-07-30 10:20:17 +08:00
看这个讨论这么激情 打算回头再取玩玩ios-,-
tgfbeta
2013-07-30 10:48:09 +08:00
刚刚把项目的最核心的view和view controller给整到storyboard。
最大的障碍是: UIImageView 不能 加subview!不知道水果负责IB的组在想啥……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/75877

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX