Summary: To date, our sample project was lacking. There is still a lot of work that can be done to improve, but, this is a step in the right direction. Here are the changes in this commit: 1. The project is written in Swift. 2. Created new CollectionView (via [IGListKit](https://github.com/instagram/iglistkit)), making it very easy to add new examples. 3. New examples for basic layouts, and including/excluding layouts on the fly. Here's a video!  Closes https://github.com/facebook/yoga/pull/392 Reviewed By: emilsjolander Differential Revision: D4550379 Pulled By: dshahidehpour fbshipit-source-id: 64a07acf96c1887f1d2ad0c54971fcedb64334a0
46 lines
1.2 KiB
Swift
46 lines
1.2 KiB
Swift
/**
|
|
* Copyright 2014-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the license found in the
|
|
* LICENSE-examples file in the root directory of this source tree.
|
|
*/
|
|
|
|
import UIKit
|
|
import YogaKit
|
|
|
|
final class SingleLabelCollectionCell: UICollectionViewCell {
|
|
let label: UILabel = UILabel(frame: .zero)
|
|
|
|
override init(frame: CGRect) {
|
|
super.init(frame: frame)
|
|
|
|
contentView.yoga.isEnabled = true
|
|
contentView.yoga.flexDirection = .column
|
|
contentView.yoga.justifyContent = .flexEnd
|
|
|
|
label.textAlignment = .center
|
|
label.numberOfLines = 1
|
|
label.yoga.isIncludedInLayout = false
|
|
contentView.addSubview(label)
|
|
|
|
let border = UIView(frame: .zero)
|
|
border.backgroundColor = .lightGray
|
|
border.yoga.isEnabled = true
|
|
border.yoga.height = 0.5
|
|
border.yoga.marginHorizontal = 25
|
|
contentView.addSubview(border)
|
|
}
|
|
|
|
required init?(coder aDecoder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
override func layoutSubviews() {
|
|
super.layoutSubviews()
|
|
|
|
contentView.yoga.applyLayout(preservingOrigin: false)
|
|
label.frame = contentView.bounds
|
|
}
|
|
}
|