Objective c 在Cocoa中使用表作为布局容器?
首先,;我目前受雇于webdeveloper,因此有几件事在我脑海中挥之不去,其中之一是:不要将表格用于布局,只是不要强> 我还在学习Objective-C,并使用一本书使用Cocoa框架。这里有一段引语: “您可以结合使用这两种方法将表转换为任意数据列表视图。现在,每一行都可以是任意大小的,并且可以使用任意单元格绘制。这样,您就可以在表视图中绘制完全不相关的内容,并将其用作布局容器。” 那样做感觉很不对。。。但是,这在使用Cocoa开发OSX时很常见,还是应该避免这种情况?在“不使用表格进行布局”背后的动机是强制实现表示(CSS)和内容(HTML)的分离。这是一种标记语言 在Cocoa中,范例是模型-视图-控制器。你想让你的模型(内容)独立于你的视图(展示…等等),但事实上并不相同 如果你说的是iOS,那么以这种方式使用UITableView是完全合乎犹太教义的。这是因为它的工作是管理一个“单元”表,它可以由任何东西组成。没有人会假装它是为了一个你可能在书中找到的信息表。UITableView中的“表”实际上与HTML中的“表”概念不同;例如,UITableView甚至不能像HTML表那样支持列 如果您谈论的是Mac OS X,那么NSTableView在概念上更接近HTML表。大多数情况下,它用于数据,但例如,它可以用于生成复选框网格。(但如果这正是您想要做的,那么NSMatrix可能更适合您。) 请注意,使用HTML表格进行布局的最糟糕的缺点是涉及大量跨多个列和行的单元格和/或在表格中嵌入表格,这些技术在NSTableView或UITableView中甚至没有类似的功能。您无法使用NSTableView来实现此类布局 因此:Objective c 在Cocoa中使用表作为布局容器?,objective-c,cocoa,Objective C,Cocoa,首先,;我目前受雇于webdeveloper,因此有几件事在我脑海中挥之不去,其中之一是:不要将表格用于布局,只是不要 我还在学习Objective-C,并使用一本书使用Cocoa框架。这里有一段引语: “您可以结合使用这两种方法将表转换为任意数据列表视图。现在,每一行都可以是任意大小的,并且可以使用任意单元格绘制。这样,您就可以在表视图中绘制完全不相关的内容,并将其用作布局容器。” 那样做感觉很不对。。。但是,这在使用Cocoa开发OSX时很常见,还是应该避免这种情况?在“不使用表格进行布局”
- 不要沉迷于名称中用于布局的单词“table”。这不是一件坏事,可可实际上设计得很好,你只需要适应这个领域
- 一定要坚持将内容/模型与演示/视图分开的精神。一开始很难看到,因为所有内容都是Objective-C(而不是HTML和CSS这两种独立的语言)
NSTableView
。目标平台是OS X。什么替代方案?这是一个很好的答案,但我认为它有点忽略了这一点,在cocoa中,所有视图都有框架,它们代表了它们在superview中的位置。大多数布局都是通过在框架中显式放置视图来完成的。对于HTML表来说,更不寻常的情况是矩阵。很好,我添加了一个关于NSMatrix的注释。如果你认为有更好的方法来抓住要点,请给出另一个答案。有足够的空间。