伙计们,
来自 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 以显示或隐藏节点吗?
感谢您的任何提示或链接!