0

伙计们,

来自 Java/Swing 世界,我有时对 iPhone 上的 UI 编程感到困惑。在过去的几个小时里,我一直在谷歌上搜索信息,但似乎我在 Java 中思考太多而提出了错误的问题。您能否向我指出资源以更熟悉 GUI 概念以实现以下功能:

基本上,我想创建一个表示结构化文本(例如,食谱)的垂直可滚动视图。每个步骤都包含一个标题和一个文字描述。当我想折叠和展开这些步骤时,标题将以某种方式具有交互性,通过单击它,描述将被显示或隐藏。

在 Java 中,我会创建一个呈现这样一个部分的组件。布局管理器将计算组件的首选高度(显示或不显示描述)。

然后,在 Java 中,我将创建一个带有垂直布局管理器的面板并按顺序添加我的组件。该面板将放置在滚动窗格中;滚动窗格会要求面板自行布局,然后在其上显示一个视口,例如,如果高度大于滚动窗格的高度。

Java 提供给我的是:

  • 元素的布局(计算它们的首选高度和宽度),因此无需处理坐标和尺寸
  • 通过在运行时创建和添加组件来动态创建 UI

我在 iPhone 上的理解:

  • 我可以通过调用 addSubview 将视图作为子视图动态添加到视图中,例如滚动视图
  • 我什至可以使用 removeFromSubview 删除这些东西(如此处所述Clear content of UIScrollView

我在 iPhone 上不明白的地方:

  • 一个视图是否总是对应​​一个可见屏幕(到目前为止,我确实使用了选项卡和导航栏导航,并且每当我设置一个新视图时,它会填充当前可见屏幕减去两个栏所需的空间)?
  • 或者是否可以定义一个包含顶部标签(“北”)和中心文本的视图;如果是这样,这样的视图能否自动确定其高度?
  • 我可以像在 Java 中那样以类似的方式实现我的示例,还是我需要自己计算各个组件的所有尺寸和坐标?(这个例子似乎触及了那个话题:iPhone scrollView add elements dynamic with id

或者,我可以使用 WebView 并使用 JavaScript 将我的内容呈现为本地 HTML 以显示或隐藏节点吗?

感谢您的任何提示或链接!

4

1 回答 1

0

Cocoa 中没有布局管理器,视图正在根据它们的支柱和弹簧设置重新定位。有关这方面的信息,请阅读文档:http: //developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/IB_UserGuide/Layout/Layout.html

要创建一个“包含顶部标签和中心文本的视图”,您创建一个带有子视图的视图 - 一个是顶部的标签,第二个是中心的文本视图。如果您为所有子视图正确配置了 struts/springs,它们将在调整容器视图大小时自动调整大小。

您还应该习惯于 Interface Builder,在代码中创建视图真的很痛苦。

于 2010-10-23T22:54:23.730 回答