Aktivieren / Deaktivieren Sie das Kontrollkästchen, indem Sie in der Tabellenansicht auf die Zelle tippen, und erfahren Sie, welche Zelle aktiviert oder deaktiviert ist.

Ich bin neu in iOS Swift 2.2. Ich habe versucht, eine Tabellenansicht mit der benutzerdefinierten Zelle xib zu erstellen. und ich fülle einige Daten in meiner Tabellenansicht auf. Außerdem habe ich ein benutzerdefiniertes Kontrollkästchen hinzugefügt. Und ich erstelle eine separate Klasse für dieses Kontrollkästchen. Jetzt, wenn ich nur auf meine Schaltfläche in meiner customcell.xib klicke. Aber wenn ich auf meine Zelle tippe, ändert sich mein Kontrollkästchen nicht. Ich muss beides haben. Wenn ich auf meine Schaltfläche klicke, sollte sich das Bild ändern, um es zu aktivieren oder zu deaktivieren. Wenn ich auf mein Handy tippe, muss ich auch meine Schaltfläche ändern, um das Bild zu aktivieren oder zu deaktivieren.

Und wenn ich nach unten scrolle und wieder nach oben komme, werden meine markierten Bilder automatisch in ein normales Kontrollkästchen umgewandelt.

Ich muss etwas tun, also dafür. Wenn ich auf eine Zelle tippe, sollte das Kontrollkästchen aktiviert und deaktiviert sein. Außerdem muss ich wissen, welche Zeilenzelle das Bild überprüft hat. Damit ich eine Aktion nur für meine markierte Bildzeilenzelle ausführen kann.

hier ist meine benutzerdefinierte Kontrollkästchen-Klasse:

import UIKit

class CheckBoxButton: UIButton {

    // Images
    let checkedImage = UIImage(named: "CheckBoxChecked")! as UIImage
    let uncheckedImage = UIImage(named: "CheckBoxUnChecked")! as UIImage

    // Bool property
    var isChecked: Bool = false {
        didSet{
            if isChecked == true {
                self.setImage(checkedImage, forState: .Normal)
            } else {
                self.setImage(uncheckedImage, forState: .Normal)
            }
        }
    }

    override func awakeFromNib() {
        self.addTarget(self, action: #selector(CheckBoxButton.buttonClicked(_:)), forControlEvents: UIControlEvents.TouchUpInside)
        self.isChecked = false
    }

    func buttonClicked(sender: UIButton) {
        if sender == self {
            if isChecked == true {
                isChecked = false
            } else {
                isChecked = true
            }
        }
    }

}

Cutom cell.xib Klasse:

import UIKit

class FavCell: UITableViewCell {

    @IBOutlet weak var FLabel1: UILabel!
    @IBOutlet weak var FLabel2: UILabel!

    @IBOutlet weak var checkbox: CheckBoxButton!
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }



    @IBAction func checkboxpress(sender: AnyObject) {
    }



}

myviewcontroller.swift

import UIKit

class FavVC: UIViewController {

    @IBOutlet weak var FavTableView: UITableView!

    //var FData = [FavouritesData]()

    var arrDict :NSMutableArray=[]

    let cellSpacingHeight: CGFloat = 5  // cell spacing from each cell in table view

    override func viewDidLoad() {

        super.viewDidLoad()

        self.jsonParsingFromURL()

        let nib = UINib(nibName:"FavCell", bundle: nil)

        FavTableView.registerNib(nib, forCellReuseIdentifier: "FCell")

    }
// web services method
    func jsonParsingFromURL ()
    {
//        let token = NSUserDefaults.standardUserDefaults().valueForKey("access_token") as? String

        let url = NSURL(string: "som url")

        let session = NSURLSession.sharedSession()

        let request = NSURLRequest(URL: url!)

        let dataTask = session.dataTaskWithRequest(request) { (data:NSData?, response:NSURLResponse?, error:NSError?) -> Void in
            // print("done, error: \(error)")

            if error == nil
            {

                dispatch_async(dispatch_get_main_queue())
                {
                    self.arrDict=(try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers)) as! NSMutableArray
                    if (self.arrDict.count>0)
                    {
                        self.FavTableView.reloadData()
                    }
                }

            }


        }
        dataTask.resume()
}
 func numberOfSectionsInTableView(tableView: UITableView) -> Int
    {
//        return self.FData.count
        return self.arrDict.count
    }


    // number of rows
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
    {
        return 1
    }

    // height for each cell
    func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat
    {
        return cellSpacingHeight
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
    {

        let cell:FavCell = self.FavTableView.dequeueReusableCellWithIdentifier("FCell") as! FavCell
        cell.FLabel1.text=arrDict[indexPath.section] .valueForKey("favourite_name") as? String
        cell.FLabel2.text=arrDict[indexPath.section] .valueForKey("favourite_address") as? String
        return cell

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

bitte hilf mir

Danke im Vorau

Antworten auf die Frage(4)

Ihre Antwort auf die Frage