установите / снимите флажок, коснувшись ячейки в табличном представлении и узнав, какая ячейка отмечена или не отмечена
я новичок в ios swift 2.2. Я попытался создать одно табличное представление с пользовательской ячейкой XIB. и я заполняю некоторые данные в моем табличном представлении. А также я добавил один пользовательский флажок. И я создаю отдельный класс для этой кнопки-флажка. Теперь, когда я нажимаю только на свою кнопку в моем customcell.xib. Но когда я нажимаю на свою ячейку, мой флажок не меняется. Мне нужно иметь оба. Когда я нажимаю на мою кнопку, она должна измениться, чтобы проверить и снять флажок с изображения. Когда я нажимаю на свою ячейку, мне нужно изменить кнопку, чтобы отметить или снять флажок
И когда я прокручиваю вниз и снова возвращаюсь наверх, мои отмеченные изображения автоматически изменяются на флажок normalcheck.
Мне нужно сделать какое-то действие, так что для этого. Когда я нажимаю на любую ячейку, мой флажок должен быть установлен и снят. И еще мне нужно знать, в какой ячейке строки проверено изображение. Так что я могу выполнить какое-то действие только для своей ячейки с проверенным изображением.
вот мой пользовательский флажок класса:
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:
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) {
}
}
мойviewcontroller.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.
}
пожалуйста, помогите мне.
заранее спасибо