gpt4 book ai didi

iPhone SDK : How to create a dynamic cell/UITable with different uicontrols

转载 作者:行者123 更新时间:2023-11-29 05:00:48 24 4
gpt4 key购买 nike

在我的 iOS 4 通用应用程序中,我需要在应用程序的开头显示一个类似表单的页面。根据我收到的 xml,我可能需要询问用户的姓名、性别、出生日期。等等。我无法确切知道我会收到什么。我将创建一些逻辑来解释服务器发送的那些“UI 提示”。

问题是我如何在 UITableView 中反射(reflect)这一点,我可以创建一个自定义单元格并从我的普通 UITableView 中针对每个问题向其发送一些参数,即应显示哪种 UI 控件以及哪种布局?

场景:

_may_收到6个要问的问题,其中3个是选择类型问题,例如是/否(我更喜欢在此处使用表格 View 复选标记附件,而不是选择器或分段),其他三个问题是姓名、姓氏和性别问题,它们实际上是单独的问题,我想将它们视为单独的问题,但将它们作为一个问题向用户显示,并在一个单元格中水平显示 3 个小文本字段。

这是一种很好的方法吗?或者可以制作一个完全动态的自定义单元并通过接收参数来创建自己吗?我也不想最终得到一个困惑的自定义单元代码。或者我可以创建 3-4 种不同类型的自定义单元格并能够混合并水平显示它们。像网格一样?

有什么建议吗?

最佳答案

解决此问题有多种方法,这完全取决于您适合哪种方法。不过,我建议您针对收到的每种类型的问题对 UITableViewCell 进行子类化。

使用哪个 UITableViewCell? :

首选方法是为您遇到的每个问题使用不同的 UITableViewCell 子类。

只有一个超动态单元可能会给您带来reuseIdentifier的麻烦,因为它不会被正确地重用,因为 View 上会有不同的控件.

这是一个需要解决类似问题的问题:

2 different types of custom UITableViewCells in UITableView (通过这种方法,您可以避免可能出现的reuseIdentifier问题

不同目标问题(iPhone/iPad):

您的另一个大要求是,您在 iPhone 和 iPad 上运行,因此在 UITableViewCell 内,您应该确定您现在正在运行的设备并进行自定义初始化。

Determine device (iPhone, iPod Touch) with iPhone SDK

这样做可以避免您专门为 iPad 创建另一组 UITableViewCell。您希望代码中至少有这么多动态。

管理不同的问题类型:

对于不同的问题类型,我建议您设置一个 typedef 枚举,它在您的应用程序中使用起来非常灵活(因为它是类型安全的),并且一旦您的需求发生变化就可以轻松更新。

HTH

关于iPhone SDK : How to create a dynamic cell/UITable with different uicontrols,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7025706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com