Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone SDK:如何创建具有不同uicontrol的动态单元格/UITable_Iphone_Ios_Ipad - Fatal编程技术网

iPhone SDK:如何创建具有不同uicontrol的动态单元格/UITable

iPhone SDK:如何创建具有不同uicontrol的动态单元格/UITable,iphone,ios,ipad,Iphone,Ios,Ipad,在我的iOS 4通用应用程序中,我需要在应用程序的开头显示一个类似表单的页面。根据我收到的xml,我可能需要询问用户的姓名、性别、出生日期。我不知道我会收到什么。我将创建一些逻辑来解释服务器发送的那些“UI提示” 问题是我如何在我的UITableView中反映这一点,我可以创建一个自定义单元格,并从我的普通UITableView中为每个问题发送一些参数,它应该显示什么样的UI控件和布局 场景: 我\u可能会收到6个问题,其中3个是选择型问题,如是/否(我更喜欢在此处使用表视图检查标记或分节),其

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

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

场景:

\u可能会收到6个问题,其中3个是选择型问题,如是/否(我更喜欢在此处使用表视图检查标记或分节),其他三个问题是名称,姓氏和性别问题实际上是独立的问题,我想将它们作为独立的问题处理,但将它们作为一个问题显示给用户,并在一个单元格3个小字段中水平显示

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


有什么建议吗

解决这个问题有多种方法,这完全取决于你对哪种方法感到满意。然而,我建议您为每种类型的问题创建子类
UITableViewCell

要使用哪个UITableViewCell?:

首选的方法是为每个问题提供不同的
UITableViewCell
子类

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

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

(使用这种方法,您可以避免可能出现的
reuseIdentifier
问题

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

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

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

管理不同的问题类型:

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


HTH

解决这个问题有多种方法,这完全取决于您对哪种方法感到满意。但是,我建议您针对您遇到的每种类型的问题对UITableViewCell进行子类化

要使用哪个UITableViewCell?:

首选的方法是为每个问题提供不同的UITableViewCell子类

仅仅拥有一个超动态单元可能会让您在使用reuseIdentifier时遇到麻烦,因为它不会被正确地重用,因为视图上会有不同的控件

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

UITableView中有两种不同类型的自定义UITableViewCell(通过这种方法,您可以避免可能出现的重用标识符问题

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

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

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

这样做可以避免你为iPad单独创建另一套UITableViewCells。你希望你的代码中至少有这么多的动态

管理不同的问题类型:

为了区别