iPhone SDK:如何用不同的ui控件创建动态单元格/ ui表



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

问题是我如何在我的UITableView中反映这一点,我可以创建一个自定义单元格,并从我的普通UITableView中为每个问题发送一些参数,它应该显示什么样的UI控件和布局?

一个场景:

_may_收到6个问题要问,其中3个是选择类型的问题,如是/否(我更喜欢在这里使用表视图checkmark附件,而不是picker或分段),其他三个问题是姓名,姓氏和性别问题,这些问题实际上是单独的问题,我想把它们当作单独的问题,但将它们作为一个问题显示给用户,并将它们显示在一个单元格3个小文本框水平。

这是一个很好的方法或可能使一个自定义单元是完全动态的,并通过接收参数创建自己?我也不想以一个混乱的自定义单元格代码结束。或者我可以创建3-4种不同类型的自定义单元格,并能够混合和水平显示它们。像网格一样?

有什么建议吗?

这个问题有多种方法,完全取决于你喜欢哪一种。然而,我建议你对每种类型的问题都进行UITableViewCell子类化。

使用哪个UITableViewCell ?:

最好的方法是为你得到的每个问题有不同的UITableViewCell子类。

只有一个超动态单元格可能会让你遇到reuseIdentifier的麻烦,因为它不会被正确地重用,因为视图上会有不同的控件。

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

UITableView中的2种不同类型的自定义UITableViewCells(使用这种方法可以避免可能出现的reuseIdentifier问题

)

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

你的另一个大要求是,你在iPhone和iPad上运行,所以在你的UITableViewCell中,你应该确定你现在运行的是哪个设备,并进行自定义初始化。

使用iPhone SDK确定设备(iPhone, iPod Touch)

这样做可以避免为iPad单独创建另一组UITableViewCell。你的代码中至少应该有这么多动态元素

管理不同类型的问题:

对于不同的问题类型,我建议你设置一个typedef enum,它非常灵活,可以在你的应用程序中使用(因为它是类型安全的),一旦你的需求发生变化,就很容易更新。

HTH

这个问题有多种方法,完全取决于你喜欢哪一种。然而,我建议你为你得到的每种类型的问题创建UITableViewCell的子类。

使用哪个UITableViewCell ?:

首选的方法是为你得到的每个问题有不同的UITableViewCell子类。

只有一个超动态单元格可能会让你遇到麻烦的reuseIdentifier,因为它不会被正确地重用,因为视图上会有不同的控件。

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

UITableView中的2种不同类型的自定义UITableViewCells(使用这种方法可以避免可能出现的reuseIdentifier问题

)

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

你的另一个大要求是,你在iPhone和iPad上运行所以在你的UITableViewCell中你应该确定你现在在哪个设备上运行并做自定义初始化。

使用iPhone SDK确定设备(iPhone, iPod Touch)

这样做将节省你创建另一组UITableViewCells单独用于iPad。你的代码中至少应该有这么多动态元素

管理不同的问题类型:

最新更新