可扩展部分UITableView IndexPath SWIFT

可扩展部分UITableView IndexPath SWIFT,第1张

概述我对编码很新,我只知道Swift.我找到了几个教程来生成表格中的下拉部分.基本上它将代表一个电视节目,标题将是季节和每个季节的剧集下拉列表. 我设法让这个工作完全符合我想要的https://github.com/fawazbabu/Accordion_Menu 这一切看起来都不错,但我需要能够从下拉项目中进行选择.我添加了didSelectRowAtIndexPath,只是简单的行打印开始.当我选 我对编码很新,我只知道Swift.我找到了几个教程来生成表格中的下拉部分.基本上它将代表一个电视节目,标题将是季节和每个季节的剧集下拉列表.

我设法让这个工作完全符合我想要的https://github.com/fawazbabu/Accordion_Menu

这一切看起来都不错,但我需要能够从下拉项目中进行选择.我添加了dIDSelectRowAtIndexPath,只是简单的行打印开始.当我选择行,节或单元格时,会返回随机索引路径,可以再次按下同一行并返回不同的值.我认为这只是我在问题中添加的内容.所以我将dIDSelectRowAtIndexPath添加到原始代码中.这有同样的问题.

我假设这是因为正在使用UIGestureRecogniser以及dIDSelectRowAtIndexPath.但我不确定替代方案是什么.

有人能告诉我哪里出错了吗?

import UIKitimport Foundationclass test: UIVIEwController,UItableVIEwDelegate,UItableVIEwDataSource {    @IBOutlet var tableVIEw: UItableVIEw!    var sectionTitleArray : NSMutableArray = NSMutableArray()    var sectionContentDict : NSMutableDictionary = NSMutableDictionary()    var arrayForBool : NSMutableArray = NSMutableArray()    overrIDe func awakeFromNib() {        super.awakeFromNib()        tableVIEw.delegate = self        tableVIEw.dataSource = self        arrayForBool = ["0","0"]        sectionTitleArray = ["Pool A","Pool B"]        var tmp1 : NSArray = ["New Zealand","Australia","Bangladesh","Sri Lanka"]        var string1 = sectionTitleArray .objectAtIndex(0) as? String        [sectionContentDict .setValue(tmp1,forKey:string1! )]        var tmp2 : NSArray = ["India","South Africa","UAE","Pakistan"]        string1 = sectionTitleArray .objectAtIndex(1) as? String        [sectionContentDict .setValue(tmp2,forKey:string1! )]        self.tableVIEw.registerNib(UINib(nibname: "categorynametableCell",bundle: NSBundle.mainBundle()),forCellReuseIDentifIEr: "categorynametableCell")    }    func numberOfSectionsIntableVIEw(tableVIEw: UItableVIEw) -> Int {        return sectionTitleArray.count    }    func tableVIEw(tableVIEw: UItableVIEw,numberOfRowsInSection section: Int) -> Int{        if(arrayForBool .objectAtIndex(section).boolValue == true){            var tps = sectionTitleArray.objectAtIndex(section) as! String            var count1 = (sectionContentDict.valueForKey(tps)) as! NSArray            return count1.count        }        return 0;    }    func tableVIEw(tableVIEw: UItableVIEw,TitleForheaderInSection section: Int) -> String? {        return "ABC"    }    func tableVIEw(tableVIEw: UItableVIEw,heightForheaderInSection section: Int) -> CGfloat {        return 50    }    func tableVIEw(tableVIEw: UItableVIEw,heightForFooterInSection section: Int) -> CGfloat {        return 0    }    func tableVIEw(tableVIEw: UItableVIEw,heightForRowAtIndexPath indexPath: NSIndexPath) -> CGfloat {        if(arrayForBool .objectAtIndex(indexPath.section).boolValue == true){            return 50        }        return 2;    }    func tableVIEw(tableVIEw: UItableVIEw,vIEwForheaderInSection section: Int) -> UIVIEw? {        let cell = self.tableVIEw.dequeueReusableCellWithIDentifIEr("categorynametableCell") as! categorynametableCell        cell.downArrow.hIDden = false        cell.backgroundcolor = UIcolor.blackcolor()        cell.tag = section        cell.categoryLabel.text = sectionTitleArray.objectAtIndex(section) as? String        let cellTapped = UITapGestureRecognizer (target: self,action:"sectionheaderTapped:")        cell .addGestureRecognizer(cellTapped)        return cell    }    func sectionheaderTapped(recognizer: UITapGestureRecognizer) {        println("TapPing working")        println(recognizer.vIEw?.tag)        var indexPath : NSIndexPath = NSIndexPath(forRow: 0,inSection:(recognizer.vIEw?.tag as Int!)!)        if (indexPath.row == 0) {            var collapsed = arrayForBool .objectAtIndex(indexPath.section).boolValue            collapsed       = !collapsed;            arrayForBool .replaceObjectAtIndex(indexPath.section,withObject: collapsed)            var range = NSMakeRange(indexPath.section,1)            var sectionToReload = NSIndexSet(indexesInRange: range)            self.tableVIEw .reloadSections(sectionToReload,withRowAnimation:UItableVIEwRowAnimation.Fade)            tableVIEw.reloadData()        }    }    func tableVIEw(tableVIEw: UItableVIEw,cellForRowAtIndexPath indexPath: NSIndexPath) -> UItableVIEwCell{        let cell = self.tableVIEw.dequeueReusableCellWithIDentifIEr("categorynametableCell") as! categorynametableCell        var manyCells : Bool = arrayForBool .objectAtIndex(indexPath.section).boolValue        if (!manyCells) {        } else {            var content = sectionContentDict .valueForKey(sectionTitleArray.objectAtIndex(indexPath.section) as! String) as! NSArray            cell.categoryLabel.text = content .objectAtIndex(indexPath.row) as? String            cell.backgroundcolor = UIcolor( red: 49/255,green: 46/255,blue:47/255,Alpha: 1.0 )        }        return cell    }    func tableVIEw(tableVIEw: UItableVIEw,dIDdeselectRowAtIndexPath indexPath: NSIndexPath) {        println(indexPath.row)    }
我不知道为什么你需要用你喜欢的部分去做,你可以用正常的细胞来实现,根本不需要复杂化.只需区分子细胞的亲本细胞即可.

我在Github中有一个存储库可以实现你想要的,而不使用UITapGestureRecognizer这两个部分.我会尽快更新项目,以便在下拉列表中获得更好的性能和更深层次的深度.

您可以访问它AccordionMenu
,并随时发布您需要的任何问题.

我希望这对你有帮助.

总结

以上是内存溢出为你收集整理的可扩展部分UITableView IndexPath SWIFT全部内容,希望文章能够帮你解决可扩展部分UITableView IndexPath SWIFT所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1050291.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存