如何在swift中更改UISwitch时隐藏UITableViewController中的特定部分

时间:2015-02-27 12:54:12

标签: ios uitableview swift

我的UITableView有3个部分 1)向用户显示UISwitch,询问您是否要显示图像 2)显示两个文本字段 3)显示ImageView以显示图像

我想隐藏UISwitch更改的第3部分。 这3个部分都是静态的。 uiswitch的行动如下:

 @IBAction func stateChanged(switchState: UISwitch, tableView: UITableView )
{
    if switchState.on {
        showImageLB.text = "Yes"
        println( "The Switch is On")
    } else {
        showImageLB.text = "No"
        println("The Switch is Off")
    }
}

请帮我解决问题。 感谢..

1 个答案:

答案 0 :(得分:2)

每次翻转UISwitch时,都需要向具有ImageView的部分添加新行。

要添加更多行并隐藏某个部分,您只需在tableView上调用reloadData即可。 调用此reloadData后,将再次调用以下两个函数。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
- (UITableViewCell *)tableView:(UITableView *)tableView  cellForRowAtIndexPath:(NSIndexPath *)indexPath

现在你需要做的就是,如果你的开关被翻转,保存一个布尔值并在你的函数中返回不同的值。

例如。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
if(switchState.on)
{
 return 2; // now you are hiding your last section. 
}
else
{
return 3; // now you are showing all 3 sections when switch is off.
}
}