Ich habe eine Schaltersteuerung und der Code ist:Zelle ersetzt nicht, wenn ich eine beliebige Zelle in der Tabellenansicht tippen
@IBAction func TappedOnSwitch(SelectUserType: UISwitch) {
if SelectUserType.on{
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "PremiumUser")
print("swifth on")
}
else
{
NSUserDefaults.standardUserDefaults().setBool(false, forKey: "normalUser")
print("swifth off")
}
}
Sein Druck gut, in meiner Konsole. Dann prüfe ich diesen Schalterzustand und ersetze die Zelle in meiner Tabellenansicht.
Aber es funktioniert nicht gut. Was ich brauche ist? wenn der Schalter ist auf i cell3
zeigen müssen, und wenn ich ich brauche ausschalten cell2
.Durch Standard cell
Show Anzeige in der Tabellenansicht
hier zeigen ist mein Code:
let premiumUserCheck = NSUserDefaults.standardUserDefaults().boolForKey("PremiumUser")
Überschreibung func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.jsonParsingFromURL()
let nib = UINib(nibName:"customCell", bundle: nil)
tableView.registerNib(nib, forCellReuseIdentifier: "cell")
let nib1 = UINib(nibName:"Expandcell", bundle: nil)
tableView.registerNib(nib1, forCellReuseIdentifier: "cell2")
let nib2 = UINib(nibName:"premiumUsercell", bundle: nil)
tableView.registerNib(nib2, forCellReuseIdentifier: "cell3")
}
Aktualisiert Code:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if(isTapped == true && indexPath == selectedIndex)
{
if (premiumUserCheck) {
let cell1:premiumUsercell = self.tableView.dequeueReusableCellWithIdentifier("cell3") as! premiumUsercell
cell1.vendorName3.text=arrDict[indexPath.section] .valueForKey("name") as? String
cell1.vendorAdddress3.text=arrDict[indexPath.section] .valueForKey("address") as? String
return cell1
print("premium user")
}
else {
let cell2:ExpandCell = self.tableView.dequeueReusableCellWithIdentifier("cell2") as! ExpandCell
cell2.VendorName.text=arrDict[indexPath.section] .valueForKey("name") as? String
cell2.vendorAdress.text=arrDict[indexPath.section] .valueForKey("address") as? String
cell2.externalView.hidden = true
print("non premium user")
return cell2
}
}
else {
let cell:customCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as! customCell
cell.vendorName.text=arrDict[indexPath.section] .valueForKey("name") as? String
cell.vendorAddress.text=arrDict[indexPath.section] .valueForKey("address") as? String
return cell
print("norml user")
}
}
bitte helfen Sie mir, warum es nicht richtig ersetzt?
Setzen Sie Ihre customCell Code in das sonst Block dies, wenn, wenn (isTapped == true && indexPath == selectedIndex) –
leider din't Sie bekommen ?? – user5513630
ja, ich lege das aber immer noch nicht ersetzen mit der richtigen Zelle – user5513630