iPhone 应用程序编程中的行和列

Posted

技术标签:

【中文标题】iPhone 应用程序编程中的行和列【英文标题】:Rows and Columns in iPhone Application Programming 【发布时间】:2011-03-02 13:11:48 【问题描述】:

如何在我的 iPhone 应用程序中获得 5x5 表格? (使用UICustomViewCell 我只能有一列)。

编辑:

我说的是下表。我可以在 iPhone 中得到它吗?

【问题讨论】:

抱歉,Akshay,我无法看到您添加的图像,因为它在我的办公室被禁止,无论如何我已经发布了一种方法,看看它是否有帮助。 无需为 Vaibhav 感到抱歉。感谢您的方法。图像所说的是假设 - 我想要一个 5x5 的表格来显示。我该怎么做?没有水龙头和所有用于显示详细视图或其他东西。只有一个包含一些数据的 5x5 表。 对我来说很简单,创建一个自定义单元格,添加适当的背景图像,将单元格分为 5 个不同的列,在这些列中添加五个标签。为这些标签设置属性。添加此自定义单元格而不是普通单元格,您可以轻松获得 5x5 网格的外观和感觉。 【参考方案1】:

没有人提到它,所以我会这样做。如果您基本上需要此表用于显示目的,并且不需要太多本机交互,您也可以在 html 中创建表并将其显示在 UIWebView 中。

我在我的一个应用中使用了类似的方法:

从您的数据创建一个简单的 html 表格并不难。

【讨论】:

+1 对于 Fluchtpunkt,因为这些似乎是正确且简单的方法。这将是乏味的免费和节省时间。这家伙可以将 table inn 制作为 html,也可以使用 href 进行一些操作在单击或其他任何情况下,然后他需要实现 WebView 的委托方法以实现对特定项目的操作。他可以在带有 href 属性的 html 中提供图像路径,因为我在提供操作方面也做了一些事情带有 html href 的 webview。但这并没有使用那么多行。为您及时帮助那个人并为他提供更好的解决方案而努力 非常感谢@fluchtpunkt 和@Sabby ...它工作得很好。现在我正在尝试动态数据。希望尽快找出答案。 :)【参考方案2】:

使用 tableview 你无法实现这一点。但如果你的设计是静态的,你可以通过使用图像来实现这一点。

【讨论】:

请查看问题编辑,感谢您的回复。 :) 我也打算在回复中写下图片。我认为我们有点困惑,因为我们已经看到一张图片作为 Akshay 想要的示例,并认为这是一个解决方案!图像的问题在于它们显然是完全静态的,因此不可能显示数据模型的动态变化!在此示例中,所需的表清楚地显示了有关可能更改的分支的信息。但是,如果不需要动态信息,那么这是一种可能(尽管仍然不可取)的解决方案。 @Akshay:我想你已经明白了。如果不使用 IB 创建 Imageview 或 Button,请添加所有你想要的标签,就像你的设计一样。并使用正确的背景图片【参考方案3】:

UITableView 只支持一列。这是一个 ios 设计决定,因为最初的 iPhone 和 iPad 屏幕要小得多。

如果您想拥有多个列,那么您必须创建自己的类,该类可能包含多个 UITableViews,或者您自己的自定义 UIControl。我认为,如果您尝试这样做,您会发现自己在与框架作斗争,并且您会误解这些平台的应用程序的性质。

也许您应该考虑使用 UINavigationControllerUITabBarController 或其他一些导航应用的方式,使用多个 UITableViews 来呈现向用户提供信息?

希望这会有所帮助。

对编辑的回应:

总之……不。

总之,是的 - 您无法使用传统的和推荐的 UITableView 来实现这一点。正如我之前所说,考虑重新排列您的数据,以便一次只显示一定数量。例如,您可以有一个 UITableView 显示所有批处理代码的列表,当用户点击其中一个单元格时,第二个 UITableView 可以转换为(使用 UINavigationController)显示“开始控制#”、“开始序列#”等更详细的信息。这种用户界面是你在 iOS 平台上的所有应用程序中看到的.

或者,您可以创建一个自定义的 UIViewUIControl 子类来显示您想要的信息,或许可以通过覆盖drawRect: 方法。但是想象一下,您上面给出的示例在 iPhone 纵向模式下的样子......不是很好,也不是很用户友好。您也许还可以为表格使用图像,并允许用户滚动图像,就像他们在照片应用程序中放大时一样。您可以将自定义控件嵌入到滚动视图中来实现这一点。但同样,用户界面可能无法满足用户对 iOS 应用程序的易用性、简单性和清晰性标准。在我看来,最好的解决方案是找出一种方法,将您的数据从逻辑上拆分到多个 UITableViews 中。试着好好看看其他一些应用程序做了什么,以及它们如何真正有效地解决小空间问题。 :)

希望这会有所帮助。

【讨论】:

请查看问题编辑,感谢您的回复。 :)【参考方案4】:
Id | Name | Address | Designation | Dept
-----------------------------------------
1  | ABC  | addr    | DM          | IT
-----------------------------------------
2  | ASD  | addr    | PM          | IT
-----------------------------------------
3  | XYZ  | addr    | TL          | IT
-----------------------------------------
4  | QWE  | addr    | PM          | IT
-----------------------------------------
5  | ZXC  | addr    | TL          | IT
-----------------------------------------

Lets assume you have to show the data in above format. Then as said by James, you can go for Custom Cells. Or you can show a table you showing only names of the Employees as in - 

-----------------------------------------
ABC
-----------------------------------------
ASD
-----------------------------------------
XYZ
-----------------------------------------
QWE
-----------------------------------------
ZXC
-----------------------------------------


And then when you select any particular employee you can navigate to a details page, showing all the details of that particular employee. or you can simply expand that particular cell and show the details of that employee

-----------------------------------------
ABC

Address     - addr

Designation - DM

Department  - IT
-----------------------------------------
ASD
-----------------------------------------
XYZ
-----------------------------------------
QWE
-----------------------------------------
ZXC
-----------------------------------------

【讨论】:

以上是关于iPhone 应用程序编程中的行和列的主要内容,如果未能解决你的问题,请参考以下文章

请教哈·····在excel中如何设置当选中某单元格时将该单元格所在的行和列高亮显示,不用编程能实现吗~?

如何在 MVC 应用程序中转置 Kendo UI 网格中的行和列?

读取特定的行和列 C++

Javascript 错误事件属性中的行和列

调整大小以适应 QTableView 中的行和列非常慢

改变 SKTileMapNode 的位置不会改变它的行和列的位置