Tableview单元格快速折叠和扩展值
Posted
技术标签:
【中文标题】Tableview单元格快速折叠和扩展值【英文标题】:Tableview cell collapse and expande value in swift 【发布时间】:2017-10-09 06:12:26 【问题描述】:我想创建带有折叠和 exapnnd 的表格视图单元格。但我有一些错误。我需要一些帮助!下面是我的代码希望你不介意我是 swift2 的新手
我正在使用 swift2。
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)
【问题讨论】:
把错误和它们何时出现。如果您是 swift 新手,那么您应该选择 swift 4,最好是最新的 【参考方案1】:我得到了答案!在这里,我分享了我在 tableview 中折叠和 exapnd 单元格的代码。希望对您有所帮助!
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
【讨论】:
以上是关于Tableview单元格快速折叠和扩展值的主要内容,如果未能解决你的问题,请参考以下文章
如何在Xamarin.iOS本机平台中扩展tableview单元格?