Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.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
Ios 带分段控件的TableViewCell_Ios_Objective C_Uitableview_Uisegmentedcontrol - Fatal编程技术网

Ios 带分段控件的TableViewCell

Ios 带分段控件的TableViewCell,ios,objective-c,uitableview,uisegmentedcontrol,Ios,Objective C,Uitableview,Uisegmentedcontrol,我有一个tableview,其中一个特定的单元格中有UISegmentedControl。 我的疑问是,当选择一个特定的段时,我需要展开单元格并显示下面的信息,当选择另一个段时,我需要隐藏它 例如: 我有三个段A、B和C。选择段B时,我需要在段下方显示开关,选择其他两个段时,段下方不必显示任何内容。数据源的对象应具有“扩展”属性 每次更改segmentedControl时,相应地更新数据源并重新加载单元格 配置单元格时,根据对象的“扩展”属性更改其大小 这里有几件事要做。您需要确保tablevi

我有一个tableview,其中一个特定的单元格中有UISegmentedControl。 我的疑问是,当选择一个特定的段时,我需要展开单元格并显示下面的信息,当选择另一个段时,我需要隐藏它

例如:
我有三个段A、B和C。选择段B时,我需要在段下方显示开关,选择其他两个段时,段下方不必显示任何内容。

数据源的对象应具有“扩展”属性

每次更改segmentedControl时,相应地更新数据源并重新加载单元格


配置单元格时,根据对象的“扩展”属性更改其大小

这里有几件事要做。您需要确保tableview对其单元格高度使用自动标注。不要使用-heightforrowatinexpath方法(将其删除)。而是在tableview上设置两个属性:

[self.tableview setEstimatedRowHeight:110];
[self.tableview setRowHeight:UITableViewAutomaticDimension];
这将为每个单元格启用正确的自动布局(如果尚未启用)

如果还没有的话,您需要在代码中包含UITableViewCell的子类(很抱歉跳过了一些非常大的事情!)。在Interface Builder中将信息标签添加到单元格中。给它一个高度约束,然后将此高度约束拖动到您的单元子类中,以便您可以更改它

现在将处理分段控件的代码放入子类中。如果检测到已选择中心线段,则会影响信息标签的高度约束,如下所示:

self.labelHeightConstraint.constant = 40;
您可能还需要调用setNeedsLayout:

[self setNeedsLayout];

抱歉这么简单-希望这能给你指明正确的方向。还有一些其他细节-对于例如on-prepareforeuse方法(在单元格上),您可以将信息标签的高度设置为0(并再次调用setNeedsLayout)。

谢谢,这是一个好主意。如何使用这一最佳方法。我使用的是两个单元格,一个用于段,一个用于切换,当段发生变化时,我添加和删除了切换单元格。是的,我肯定会说这是一种方式。使用“自动标注”的单元格是单元格大小的最新也是最好的解决方案,因此您无论如何都应该使用它。同样,它也是扩展单元格的最佳方法,因此在运行时更改约束属性肯定是最好的方法。顺便说一句,“estimatedCellHeight”属性使用的数字将其设置为更接近平均单元格大小的数字。所有这些实际上只是让表格知道为一个新表格准备多少单元格。