Ich versuche, das folgende Design mit Facebook AsyncDisplayKit zu bauen, und ich habe Probleme beim Erstellen der Zellen und der TableHeaderView.Einfache Zelle mit AsyncDisplayKit Layout
Entwurf:
Zellen:
So jede Zelle ein ASImageNode
und ein ASEditableTextNode
mit folgendem Layout:
override func layoutSpecThatFits(_ constrainedSize: ASSizeRange) -> ASLayoutSpec {
var cellChildren = [ASLayoutElement]()
let iconTextfieldStack = ASStackLayoutSpec.horizontal()
iconTextfieldStack.alignItems = .center
iconTextfieldStack.justifyContent = .start
iconTextfieldStack.style.flexShrink = 1.0
iconTextfieldStack.style.flexGrow = 1.0
_iconImageView.style.preferredSize = CGSize(width: 30, height: 30)
cellChildren.append(ASInsetLayoutSpec(insets: UIEdgeInsetsMake(10, 10, 10, 10), child: _iconImageView))
_textField.style.spacingBefore = 10
cellChildren.append(ASInsetLayoutSpec(insets: UIEdgeInsetsMake(0, 0, 0, 10), child: _textField))
iconTextfieldStack.children = cellChildren
return ASInsetLayoutSpec(insets: UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0), child: iconTextfieldStack)
}
Das Ergebnis sieht aus wie das:
Wie Sie die dritten Reihen sehen ASEditableTextNode
überschreitet die Zellen Breite (erstes Problem). Die andere Sache ist, dass die ASEditableTextNode
ihre Höhe (und die Zellenhöhe) nicht erweitert, um die Zeilen des ASEditableTextNode
Textes anzuzeigen. Auch bekomme ich diese Warnung:
-[UIWindow endDisablingInterfaceAutorotationAnimated:] called on <UIRemoteKeyboardWindow: 0x1024c9c00; frame = (0 0; 375 667); opaque = NO; autoresize = W+H; layer = <UIWindowLayer: 0x17022e4c0>> without matching -beginDisablingInterfaceAutorotation. Ignoring.
Gibt es eine Möglichkeit, dies zu erreichen?