レイアウトキットを使ってwhatsappタイムスタンプレイアウトを構築するには?
layoutKitを使用してこのメッセージバブルレイアウトを構築しようとしています。私はこれを以下のように構築するためにstackLayoutを使用していましたが、タイムスタンプとメッセージの動的な位置をレンダリングすることはできません。タイムスタンプはスタック内で水平に配置されますが、メッセージが長ければタイムスタンプはスタック内に垂直に配置されます。
このレイアウトの作成方法を教えてもらえますか?
class LayoutSample1: SizeLayout<View> {
init(messageLayout: Layout, timeStampLayout: Layout) {
let stackLayout = StackLayout(
axis: .vertical,
distribution: .fillFlexing,
sublayouts: [messageLayout, timeStampLayout],
config: { view in
view.backgroundColor = UIColor.orange
})
super.init(
sublayout: stackLayout,
config: { view in
view.backgroundColor = UIColor.yellow
})
}
}
class TimestampLayout: LabelLayout<UILabel> {
init(text: String) {
super.init(
text: Text.unattributed(text),
font: UIFont.systemFont(ofSize: 12),
numberOfLines: 0,
alignment: .bottomTrailing,
config: { label in
label.backgroundColor = UIColor.red
})
}
}
class MessageLayout: LabelLayout<UILabel> {
init(text: String) {
super.init(
text: Text.unattributed(text),
font: UIFont.systemFont(ofSize: 14),
numberOfLines: 0,
alignment: .topLeading,
config: { label in
label.backgroundColor = UIColor.red
})
}
}