麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Swift > 正文

iOS UITableView展開縮放動畫實例代碼

2020-03-09 17:47:31
字體:
來源:轉載
供稿:網友

Swift - UITableView展開縮放動畫 

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 }}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人午夜精品久久久久久久蜜臀 | 毛片视频在线免费观看 | 亚洲白嫩在线观看 | 亚洲精品3 | 亚洲码无人客一区二区三区 | 黄色大片在线免费观看 | 欧美一级小视频 | 国产一区二区三区在线观看视频 | 综合激情网 | 中文字幕亚洲情99在线 | 精品国产精品久久 | 亚洲黑人在线观看 | mmmwww| av电影网在线观看 | 77成人影院 | 久久欧美亚洲另类专区91大神 | 国产精品视频2021 | 中文字幕国产日韩 | 香蕉久久久精品 | 麻豆91精品91久久久 | 13一14毛片免费看 | 毛片在线免费观看网址 | 久草在线观看福利视频 | 黄色毛片一级 | chinese乱子伦xxxx国语对白 | 国产毛片在线看 | 久久久久久久久久久久久久av | 免费国产一级淫片 | 中国hdxxxx护士爽在线观看 | 激情在线视频 | 久色精品视频 | 国产91对白叫床清晰播放 | 国产成人精品自拍视频 | 激情亚洲一区二区三区 | 亚洲一区二区三区在线看 | 精精国产xxxx视频在线播放7 | 毛片视频网址 | www.9191.com| 中文字幕在线观看成人 | 亚洲成人福利在线 | 国产91久久久久久 |