swift2 在swift中折叠和展开表视图单元格值

gjmwrych  于 2022-11-06  发布在  Swift
关注(0)|答案(1)|浏览(249)

我想创建带有折叠和扩展的tableview单元格。但是我遇到了一些错误。我需要一些帮助!下面是我的代码,希望你不要介意我是swift 2的新手
我使用的是swift 2。

class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate { 
    @IBOutlet weak var tableview: UITableView!

要将sectionArr作为标头

let sectionArr = ["animal", "bird"] //section 
  let animalArr = ["dog", "cat"]  
  let birdArr = ["crow", "cock"]

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

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

func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return sectionArr.count
}

//信头区段

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let headerView = UIView()
    headerView.frame = CGRectMake(0, 0, tableView.frame.size.width, 80)
   // headerView.backgroundColor = [UIColor, clearColor];
    let lblTitle = UILabel()
    lblTitle.frame = CGRectMake(0, 0, tableView.frame.size.width, 40)
    lblTitle.text = sectionArr[section]
    headerView.addSubview(lblTitle)
    return headerView
    }

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if section == 0 {
            return  animalArr.count
        } else {                    
            return birdArr.count
        }
    }

//显示视图单元格

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell1:UITableViewCell=UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "cell")

    //cell1.textLabel!.text=sectionArr[indexPath.row]
    cell1.textLabel!.text=animalArr[indexPath.row]
    cell1.textLabel!.text=birdArr[indexPath.row]

    return cell1
}

保存选定的索引路径行

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){
    let Toy = sectionArr[indexPath.row]
    print(Toy)
   } 
}
yc0p9oo0

yc0p9oo01#

我有我的答案!在这里,我分享了我的代码折叠和扩展单元格在tableview。希望它的帮助!

class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate {

    let sectionArr = ["Animal", "Bird"]
    let animalArr = ["dog", "cat"]
    let birdArr = ["crow", "cock"]
    var isBool = false
    var sec = 0

    @IBOutlet weak var tableview: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()
         tableview.reloadData()
    }

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

    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return sectionArr.count
    }

    func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let headerView = UIView()
        headerView.frame = CGRectMake(0, 0, tableview.frame.size.width, 80)
      //create lable dynamically
        let lblTitle = UILabel()
        lblTitle.frame = CGRectMake(0, 0, tableview.frame.size.width, 40)
        lblTitle.text = sectionArr[section]
        headerView.addSubview(lblTitle)

      //create button dynamically
        let btn: UIButton = UIButton(frame: CGRectMake(0, 0, tableview.frame.size.width, 40))
        btn.setTitle(sectionArr[section], forState: UIControlState.Normal)
        btn.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
        btn.tag = section              // change tag property
        headerView.addSubview(btn)
        return headerView
    }

    func buttonAction(sender: UIButton!)
    {
        if isBool == false {
            sec = sender.tag
            isBool = true
            tableview.reloadData()
        } else {
            sec = 0
            isBool = false
            tableview.reloadData()
        }
    }

  func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if section == 0 {
            if isBool && sec == 0 {
                return animalArr.count
            } else {
                return 0
            }
        } else{
            if isBool && sec == 1 {
                return birdArr.count
            } else {
                return 0
            }

        }
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
   let cell1:UITableViewCell=UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "cell")

        if(indexPath.section == 0)
        {
            cell1.textLabel!.text=animalArr[indexPath.row]
        }
        else
        {
            cell1.textLabel!.text=birdArr[indexPath.row]
        }
        return cell1
    }
}

相关问题