Guest User

Untitled

a guest
Jan 16th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. class ViewController: ASViewController<ASScrollNode>, UIScrollViewDelegate {
  2. let someFixedNode: ASDisplayNode = {
  3. let node = ASDisplayNode()
  4. node.backgroundColor = .red
  5. node.style.height = ASDimension(unit: .points, value: 250)
  6. return node
  7. }()
  8.  
  9. let someFlexibleNode: ASDisplayNode = {
  10. let node = ASDisplayNode()
  11. node.backgroundColor = .blue
  12. return node
  13. }()
  14. init() {
  15. super.init(node: ASScrollNode())
  16. }
  17.  
  18. required init?(coder aDecoder: NSCoder) {
  19. fatalError("init(coder:) has not been implemented")
  20. }
  21.  
  22. override func viewDidLoad() {
  23. super.viewDidLoad()
  24. self.node.view.alwaysBounceVertical = true
  25. self.node.view.showsVerticalScrollIndicator = false
  26. self.node.view.bounces = true
  27. self.node.automaticallyManagesSubnodes = true
  28. node.automaticallyManagesContentSize = true
  29. self.node.view.delegate = self
  30. self.node.setNeedsLayout()
  31. self.node.layoutSpecBlock = { node, sizeRange in
  32. return ASStackLayoutSpec(direction: .vertical,
  33. spacing: 0,
  34. justifyContent: .start,
  35. alignItems: .stretch,
  36. children: [self.someFlexibleNode, self.someFixedNode])
  37.  
  38. }
  39. }
  40. // MARK: - UIScrollViewDelegate implementation
  41. func scrollViewDidScroll(_ scrollView: UIScrollView) {
  42. if scrollView.contentOffset.y < 0 {
  43. someFlexibleNode.style.height = ASDimension(unit: .points, value: abs(scrollView.contentOffset.y))
  44. someFlexibleNode.setNeedsLayout()
  45. }
  46. }
  47. }
Add Comment
Please, Sign In to add comment