Peter 9bc996374f Add 'submodules/AsyncDisplayKit/' from commit '02bedc12816e251ad71777f9d2578329b6d2bef6'
git-subtree-dir: submodules/AsyncDisplayKit
git-subtree-mainline: d06f423e0ed3df1fed9bd10d79ee312a9179b632
git-subtree-split: 02bedc12816e251ad71777f9d2578329b6d2bef6
2019-06-11 18:42:43 +01:00

39 lines
1.1 KiB
Swift

//
// ImageCellNode.swift
// Texture
//
// Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.
// Changes after 4/13/2017 are: Copyright (c) Pinterest, Inc. All rights reserved.
// Licensed under Apache 2.0: http://www.apache.org/licenses/LICENSE-2.0
//
import UIKit
import AsyncDisplayKit
class ImageCellNode: ASCellNode {
let imageNode = ASImageNode()
required init(with image : UIImage) {
super.init()
imageNode.image = image
self.addSubnode(self.imageNode)
}
override func layoutSpecThatFits(_ constrainedSize: ASSizeRange) -> ASLayoutSpec {
var imageRatio: CGFloat = 0.5
if imageNode.image != nil {
imageRatio = (imageNode.image?.size.height)! / (imageNode.image?.size.width)!
}
let imagePlace = ASRatioLayoutSpec(ratio: imageRatio, child: imageNode)
let stackLayout = ASStackLayoutSpec.horizontal()
stackLayout.justifyContent = .start
stackLayout.alignItems = .start
stackLayout.style.flexShrink = 1.0
stackLayout.children = [imagePlace]
return ASInsetLayoutSpec(insets: UIEdgeInsets.zero, child: stackLayout)
}
}