文章来源:淘论文网   发布者: 毕业设计   浏览量: 27



还可以点击去查询以下关键词:
[可折叠]    [视图]    [可折叠视图]   

项目介绍:

FoldingCell









About

This project is maintained by Ramotion, Inc.

We specialize in the designing and coding of custom UI for Mobile Apps and Websites.

Looking for developers for your project?

Requirements

iOS 8.0+

Xcode 7.3

Installation

Just add the FoldingCell.swift file to your project.

or use CocoaPods with Podfile:

pod 'FoldingCell', '~> 2.0.3'

or Carthage users can simply add Mantle to their Cartfile:

github 'Ramotion/folding-cell'

or just drag and drop FoldingCell.swift file to your project

Solution

Usage

1) Create a new cell inheriting from FoldingCell

2) Add a UIView to your cell in your storyboard or nib file, inheriting from RotatedView.
Connect the outlet from this view to the cell property foregroundView.
Add constraints from this view to the superview, as in this picture:

(constants of constraints may be different). Connect the outlet from this top constraint to the cell property foregroundViewTop
. (This view will be shown when the cell is in its normal state).

3) Add other UIViews to your cell, connect the outlet from this view to the cell
property containerView. Add constraints from this view to the superview like in the picture:

(constants of constraints may be different). Connect the outlet from this top constraint to the cell property containerViewTop.
(This view will be shown when the cell is opened)

Your result should be something like this picture:

4) Set @IBInspectable var itemCount: NSInteger property is a count of folding (it IBInspectable you can set in storyboard). range 2 or greater. Default value is 2

Ok, we've finished configuring the cell.

5) Adding code to your UITableViewController

5.1) Add constants:

fileprivate struct C { struct CellHeight { static let close: CGFloat = *** // equal or greater foregroundView height static let open: CGFloat = *** // equal or greater containerView height } }

5.2) Add property for calculate cells height

var cellHeights = (0..<CELLCOUNT).map { _ in C.CellHeight.close }

5.3) Override method:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { return cellHeights[indexPath.row] }

5.4) Added code to method:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { guard case let cell as FoldingCell = tableView.cellForRowAtIndexPath(indexPath) else { return } var duration = 0.0 if cellHeights[indexPath.row] == kCloseCellHeight { // open cell cellHeights[indexPath.row] = kOpenCellHeight cell.selectedAnimation(true, animated: true, completion: nil) duration = 0.5 } else {// close cell cellHeights[indexPath.row] = kCloseCellHeight cell.selectedAnimation(false, animated: true, completion: nil) duration = 1.1 } UIView.animateWithDuration(duration, delay: 0, options: .CurveEaseOut, animations: { _ in tableView.beginUpdates() tableView.endUpdates() }, completion: nil) }#p#分页标题#e#

5.5) Control if the cell is open or closed

override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { if case let cell as FoldingCell = cell { if cellHeights![indexPath.row] == C.cellHeights.close { foldingCell.selectedAnimation(false, animated: false, completion:nil) } else { foldingCell.selectedAnimation(true, animated: false, completion: nil) } } }

6) Add this code to your new cell class

override func animationDuration(itemIndex:NSInteger, type:AnimationType)-> NSTimeInterval { // durations count equal it itemCount let durations = [0.33, 0.26, 0.26] // timing animation for each view return durations[itemIndex] }

github地址:
https://github.com/Ramotion/folding-cell
开题报告开题报告


这里还有:


还可以点击去查询:
[可折叠]    [视图]    [可折叠视图]   

请扫码加微信 微信号:sj52abcd


下载地址: http://www.taolw.com/down/7355.docx
  • 上一篇:swift3.1写的定制微信界面
  • 下一篇:图片压缩到定制100K以下减少失真