Folk,将元素垂直添加到scrollview:差异在Java和iPhone SDK之间?
来自Java/Swing世界,我有时会对iPhone上的UI编程感到困惑。我花了最后几个小时搜索Google的信息,但似乎我在Java中考虑了太多错误的问题。请您指点我的资源,以便更熟悉GUI概念以实现以下功能:
基本上,我想创建一个表示结构化文本(例如配方)的垂直滚动视图。每一步都有一个标题和一个文字说明。由于我想折叠和展开这样的步骤,标题将以某种方式交互,通过点击它可以显示或隐藏描述。
在Java中,我将创建一个呈现一个这样的部分的组件。布局管理器将计算组件的首选高度(显示或不显示描述)。
然后,在Java中,我将创建一个具有垂直布局管理器的面板,并按顺序添加我的组件。该面板将被放置在滚动窗格中;如果例如高度大于滚动窗格的高度,滚动窗格会要求面板布局自身,然后在其上显示一个视口。
什么Java提供我是:
- 布点元件(计算其优选的高度和宽度),因此,不需要处理坐标和尺寸的
- 动态创建UI的创建和过程中加入组分运行时
我在iPhone上的明白了什么:
- 我可以将视图动态添加为视图的子视图,例如滚动型致电addSubview
- 我甚至可以删除使用removeFromSubview的东西(如这里Clear content of UIScrollView解释)
我没有在iPhone上理解什么:
- 做一个视图总是对应一个可见的屏幕(当我设置一个新的视图时,我确实使用了tab和navbar导航,它填充当前可见屏幕减去两个栏所需的空间)?
- 或者是否可以定义一个视图,该视图的顶部(“北”)和中间的文本包含一个标签;如果是这样,这样的视图能否自动确定其高度?
- 我可以通过类似于Java的方式来实现我的示例吗?还是需要我自己计算各个组件的所有尺寸和坐标? (这个例子似乎涉及该主题:iPhone scrollView add elements dynamically with id)
或者,我可以使用WebView和呈现我的东西作为本地HTML使用JavaScript显示或隐藏节点?
感谢您的任何提示或链接!
没有足够的信息为完整的答案,所以我只写一条评论。一个可能适用于您的想法是将其作为UITableView实现。 UITableView是UIScrollView的子类。这也不仅仅是一个简单的项目清单。它有组,页眉和页脚。你也可以在实际的表格单元中放置任何你想要的东西(比如可以根据你的要求呈现HTML的UIWebView)。 – 2010-10-23 22:42:53
也许这是最直接的方法。我可以使用带有部分标题的表格,然后使用导航栏打开带有部分内容的新视图,而不是使用可以折叠的部分标题来构建页面。这至少会与iphone应用程序的标准可用性保持一致。也许从中学到的教训是,移动应用程序不是一个Web应用程序不是一个富客户端应用程序(从设计的角度来看)。 Thx – Sven 2010-10-24 09:20:29