Sketch out sticker keyboard.

This commit is contained in:
Matthew Chen 2019-04-24 15:26:30 -04:00
parent 342b662d17
commit fab8688ec6
2 changed files with 41 additions and 22 deletions

View File

@ -20,14 +20,28 @@ public class StickerKeyboard: UIStackView {
@objc
override public var frame: CGRect {
didSet {
Logger.verbose("----- frame: \(frame), bounds: \(bounds)")
logLayout()
}
}
@objc
override public var bounds: CGRect {
didSet {
Logger.verbose("----- frame: \(frame), bounds: \(bounds)")
logLayout()
}
}
private func logLayout() {
Logger.verbose("----- frame: \(frame), bounds: \(bounds)")
Logger.verbose("----- \t: \(headerView.frame)")
Logger.verbose("----- \t: \(stickerCollectionView.frame)")
Logger.verbose("----- \t: \(footerView.frame)")
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 2.0) {
Logger.verbose("----- frame: \(self.frame), bounds: \(self.bounds)")
Logger.verbose("----- \t: \(self.headerView.frame)")
Logger.verbose("----- \t: \(self.stickerCollectionView.frame)")
Logger.verbose("----- \t: \(self.footerView.frame)")
}
}
@ -89,11 +103,11 @@ public class StickerKeyboard: UIStackView {
stickerCollectionView.setCompressionResistanceVerticalLow()
// stickerCollectionView.autoSetDimension(.height, toSize: 100)
footerView.axis = .horizontal
footerView.alignment = .center
addArrangedSubview(footerView)
footerView.setContentHuggingVerticalHigh()
footerView.setCompressionResistanceVerticalHigh()
// footerView.axis = .horizontal
// footerView.alignment = .center
// addArrangedSubview(footerView)
// footerView.setContentHuggingVerticalHigh()
// footerView.setCompressionResistanceVerticalHigh()
}
private func reloadStickers() {

View File

@ -21,19 +21,7 @@ public class StickerPackCollectionView: UICollectionView {
didSet {
AssertIsOnMainThread()
if let stickerPack = stickerPack {
// Only show installed stickers.
stickerInfos = StickerManager.installedStickers(forStickerPack: stickerPack)
// Download any missing stickers.
StickerManager.ensureDownloadsAsync(forStickerPack: stickerPack)
} else {
stickerInfos = []
}
Logger.verbose("---- stickerInfos: \(stickerInfos.count)")
self.reloadData()
reloadStickers()
}
}
@ -79,12 +67,30 @@ public class StickerPackCollectionView: UICollectionView {
@objc func stickersOrPacksDidChange() {
AssertIsOnMainThread()
self.reloadData()
reloadStickers()
}
required public init(coder: NSCoder) {
notImplemented()
}
private func reloadStickers() {
AssertIsOnMainThread()
if let stickerPack = stickerPack {
// Only show installed stickers.
stickerInfos = StickerManager.installedStickers(forStickerPack: stickerPack)
// Download any missing stickers.
StickerManager.ensureDownloadsAsync(forStickerPack: stickerPack)
} else {
stickerInfos = []
}
Logger.verbose("---- stickerInfos: \(stickerInfos.count)")
reloadData()
}
}
// MARK: - UICollectionViewDelegate
@ -192,7 +198,6 @@ extension StickerPackCollectionView {
if (itemSize != flowLayout.itemSize) {
flowLayout.itemSize = itemSize
flowLayout.invalidateLayout()
reloadData()
}
}
}