虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > Swift编程 > iOS UITableView展开缩放动画实例代码

iOS UITableView展开缩放动画实例代码
类别:Swift编程   作者:码皇   来源:互联网   点击:

这篇文章主要介绍了Swift UITableView展开缩放动画实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Swift - UITableView展开缩放动画 

效果

源码:https://github.com/YouXianMing/Swift-Animations 

    //// HeaderViewTapAnimationController.swift// Swift-Animations//// Created by YouXianMing on 16/8/9.// Copyright ©
    2016年 YouXianMing. All rights reserved.//import UIKitclass HeaderViewTapAnimationController: NormalTitleViewController, UITableViewDelegate, UITableViewDataSource {
    private var classes : [ClassModel]! private var tableView : UITableView! private var sectionFirstLoad : Bool! private weak var tmpHeadView : ClassHeaderView! override func setup() {
    super.setup() sectionFirstLoad = false // TableView. tableView = UITableView(frame: (contentView?.bounds)!) tableView.dataSource = self tableView.delegate = self tableView.rowHeight = 60 tableView.sectionHeaderHeight = 30 tableView.separatorStyle = .None contentView?.addSubview(tableView!) // Register. ClassHeaderView.registerToTableView(tableView) StudentInfoCell.registerToTableView(tableView) // Data source. let Aitna = ClassModel(className: "Aitna") Aitna.expend = false Aitna.students?.append(StudentModel(name: "Y.X.M.", age: 27)) Aitna.students?.append(StudentModel(name: "Leif", age: 12)) Aitna.students?.append(StudentModel(name: "Lennon", age: 23)) Aitna.students?.append(StudentModel(name: "Jerome", age: 19)) Aitna.students?.append(StudentModel(name: "Isidore", age: 15)) let Melete = ClassModel(className: "Melete") Melete.expend = false Melete.students?.append(StudentModel(name: "Merle", age: 17)) Melete.students?.append(StudentModel(name: "Paddy", age: 31)) Melete.students?.append(StudentModel(name: "Perry", age: 59)) Melete.students?.append(StudentModel(name: "Philip", age: 23)) let Aoede = ClassModel(className: "Aoede") Aoede.expend = false Aoede.students?.append(StudentModel(name: "Verne", age: 12)) Aoede.students?.append(StudentModel(name: "Vincent", age: 89)) Aoede.students?.append(StudentModel(name: "Walter", age: 43)) Aoede.students?.append(StudentModel(name: "Zachary", age: 21)) let Dione = ClassModel(className: "Dione") Dione.expend = false Dione.students?.append(StudentModel(name: "Timothy", age: 72)) Dione.students?.append(StudentModel(name: "Roderick", age: 34)) Dione.students?.append(StudentModel(name: "Quentin", age: 12)) Dione.students?.append(StudentModel(name: "Paddy", age: 75)) let Adanos = ClassModel(className: "Adanos") Adanos.expend = false Adanos.students?.append(StudentModel(name: "Mortimer", age: 43)) Adanos.students?.append(StudentModel(name: "Michael", age: 64)) Adanos.students?.append(StudentModel(name: "Kevin", age: 23)) Adanos.students?.append(StudentModel(name: "Jeremy", age: 21)) classes = [ClassModel]() classes.append(Aitna) classes.append(Melete) classes.append(Aoede) classes.append(Dione) classes.append(Adanos) // Expend animations. GCDQueue.executeInMainQueue({
    self.sectionFirstLoad = true self.tableView.insertSections(NSIndexSet(indexesInRange: NSMakeRange(0, self.classes.count)), withRowAnimation: .Fade) GCDQueue.executeInMainQueue({
    self.tmpHeadView.buttonEvent() }
    , afterDelaySeconds: 0.4) }
    , afterDelaySeconds: 0.3) }
    // MARK: UITableView's delegate & dataSource. func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    let classModel = classes[section] if classModel.expend == true {
    return (classModel.students?.count)! }
    else {
    return 0 }
    }
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    if sectionFirstLoad == false {
    return 0 }
    else {
    return classes.count }
    }
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let classModel = classes[indexPath.section] let customCell = tableView.dequeueReusableCellWithIdentifier("StudentInfoCell") as! CustomCell customCell.data = classModel.students![indexPath.row] customCell.indexPath = indexPath customCell.loadContent() return customCell }
    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    tableView.selectedEventWithIndexPath(indexPath) }
    func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let headerView = tableView.dequeueReusableHeaderFooterViewWithIdentifier("ClassHeaderView") as! ClassHeaderView headerView.section = section headerView.data = classes[section] headerView.tableView = tableView headerView.loadContent() if tmpHeadView == nil && section == 0 {
    tmpHeadView = headerView }
    return headerView }
    }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关热词搜索: Swift UITableView 展开 缩放