gpt4 book ai didi

ios - 使用复选标记配件显示在 swift 中选择的一个单元格

转载 作者:行者123 更新时间:2023-11-29 01:12:03 24 4
gpt4 key购买 nike

我有一个设置屏幕,可以在两个单位系统(公制和英制)之间进行选择,并且希望在用户选择特定单元格时只显示一个复选标记,如果选择另一个单元格则切换复选标记。目前,我的代码选择了如图所示的两个单元格,并且当我稍后返回 View 时,不会将复选标记保存到所选单元格。

关于如何解决这个问题的任何想法。我在 stack 上看到过类似的问题,但大多数都在 ObjC 中。

代码:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

tableView.deselectRowAtIndexPath(indexPath, animated: true)

var weightValue: String? = unitsDefaults.objectForKey(kCCWeightKeyMetric) as! String?
var distanceValue: String? = unitsDefaults.objectForKey(kCCDistanceKeyMetric) as! String?
let cell = tableView.cellForRowAtIndexPath(indexPath)


if indexPath.row == 0 {

weightValue = "pounds" //Set to this for the default value of weight
unitsDefaults.setObject(weightValue, forKey: kCCWeightKeyMetric) //Save the kg value

distanceValue = "miles" //Set to this for the default value of distance
unitsDefaults.setObject(distanceValue, forKey: kCCDistanceKeyMetric) //Save the km value

cell?.accessoryType = UITableViewCellAccessoryType.Checkmark

unitsDefaults.synchronize()

//Check mark Selection
if unitsDefaults.stringForKey(kCCDistanceKeyMetric)! == "miles" {

cell?.accessoryType = UITableViewCellAccessoryType.Checkmark

} else if unitsDefaults.stringForKey(kCCDistanceKeyMetric)! == "km"{

cell?.accessoryType = UITableViewCellAccessoryType.None
}


} else {

weightValue = "kg" //Set to this for the default value of weight
unitsDefaults.setObject(weightValue, forKey: kCCWeightKeyMetric) //Save the kg value

distanceValue = "km" //Set to this for the default value of distance
unitsDefaults.setObject(distanceValue, forKey: kCCDistanceKeyMetric) //Save the km value

unitsDefaults.synchronize()

//Check mark Selection
if unitsDefaults.stringForKey(kCCDistanceKeyMetric)! == "km" {

cell?.accessoryType = UITableViewCellAccessoryType.Checkmark

} else if unitsDefaults.stringForKey(kCCDistanceKeyMetric)! == "miles"{

cell?.accessoryType = UITableViewCellAccessoryType.None
}


}

//Dismiss the View
if let navController = self.navigationController {
navController.popViewControllerAnimated(true)
}

}

enter image description here

最佳答案

做这个类型。我正在用 Objective-C 编写。您可以了解如何在 Swift 中执行。创建一个可变字典说'cellDictionary'

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cellIdentifier" forIndexPath:indexPath];
NSString *cellRowString =[NSString stringWithFormat:@"%ld",(long)indexPath.row];
if([cellDictionary valueForKey:cellRowString]!=nil){
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
else
{
cell.accessoryType = UITableViewCellAccessoryNone;
}
return cell;
}


-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellRowString =[NSString stringWithFormat:@"%ld",(long)indexPath.row];
if([cellDictionary valueForKey:cellRowString]==nil){
[cellDictionary setObject:cellRowString forKey:cellRowString];
}
[tableView reloadData];
}

关于ios - 使用复选标记配件显示在 swift 中选择的一个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35624356/

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