mirror of
https://github.com/tappollo/IGListKit.git
synced 2026-06-17 02:41:18 +08:00
internal diff for PR #209
Summary: https://github.com/Instagram/IGListKit/pull/209 Reviewed By: rnystrom Differential Revision: D4190633 fbshipit-source-id: 9d382b9ba3f3d20c8b9c48d900650ec354bc9728
This commit is contained in:
committed by
Facebook Github Bot
parent
1f40dfcab7
commit
879260b417
@@ -0,0 +1,49 @@
|
||||
/**
|
||||
Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
|
||||
|
||||
The examples provided by Facebook are for non-commercial testing and evaluation
|
||||
purposes only. Facebook reserves all rights not expressly granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
import UIKit
|
||||
import IGListKit
|
||||
|
||||
final class ExpandableSectionController: IGListSectionController, IGListSectionType {
|
||||
|
||||
var expanded = false
|
||||
var object: String?
|
||||
|
||||
func numberOfItems() -> Int {
|
||||
return 1
|
||||
}
|
||||
|
||||
func sizeForItem(at index: Int) -> CGSize {
|
||||
let width = collectionContext!.containerSize.width
|
||||
let height = expanded ? LabelCell.textHeight(object ?? "", width: width) : LabelCell.singleLineHeight
|
||||
return CGSize(width: width, height: height)
|
||||
}
|
||||
|
||||
func cellForItem(at index: Int) -> UICollectionViewCell {
|
||||
let cell = collectionContext!.dequeueReusableCell(of: LabelCell.self, for: self, at: index) as! LabelCell
|
||||
cell.label.numberOfLines = expanded ? 0 : 1
|
||||
cell.label.text = object
|
||||
return cell
|
||||
}
|
||||
|
||||
func didUpdate(to object: Any) {
|
||||
self.object = object as? String
|
||||
}
|
||||
|
||||
func didSelectItem(at index: Int) {
|
||||
expanded = !expanded
|
||||
collectionContext?.reload(self)
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user