Animate timeline star and unread indicators
This commit is contained in:
parent
42bccc2fea
commit
3faa9d7cde
|
@ -15,9 +15,11 @@ struct MasterTimelineDefaultCellLayout: MasterTimelineCellLayout {
|
||||||
|
|
||||||
static let unreadCircleMarginLeft = CGFloat(integerLiteral: 0)
|
static let unreadCircleMarginLeft = CGFloat(integerLiteral: 0)
|
||||||
static let unreadCircleDimension = CGFloat(integerLiteral: 12)
|
static let unreadCircleDimension = CGFloat(integerLiteral: 12)
|
||||||
|
static let unreadCircleSize = CGSize(width: MasterTimelineDefaultCellLayout.unreadCircleDimension, height: MasterTimelineDefaultCellLayout.unreadCircleDimension)
|
||||||
static let unreadCircleMarginRight = CGFloat(integerLiteral: 8)
|
static let unreadCircleMarginRight = CGFloat(integerLiteral: 8)
|
||||||
|
|
||||||
static let starDimension = CGFloat(integerLiteral: 16)
|
static let starDimension = CGFloat(integerLiteral: 16)
|
||||||
|
static let starSize = CGSize(width: MasterTimelineDefaultCellLayout.starDimension, height: MasterTimelineDefaultCellLayout.starDimension)
|
||||||
|
|
||||||
static let avatarSize = CGSize(width: 48.0, height: 48.0)
|
static let avatarSize = CGSize(width: 48.0, height: 48.0)
|
||||||
static let avatarMarginRight = CGFloat(integerLiteral: 8)
|
static let avatarMarginRight = CGFloat(integerLiteral: 8)
|
||||||
|
|
|
@ -187,12 +187,30 @@ private extension MasterTimelineTableViewCell {
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateUnreadIndicator() {
|
func updateUnreadIndicator() {
|
||||||
showOrHideView(unreadIndicatorView, cellData.read || cellData.starred)
|
let hide = cellData.read || cellData.starred
|
||||||
unreadIndicatorView.setNeedsDisplay()
|
self.unreadIndicatorView.isHidden = hide
|
||||||
|
self.unreadIndicatorView.frame.size = !hide ? CGSize.zero : MasterTimelineDefaultCellLayout.unreadCircleSize
|
||||||
|
UIView.animate(
|
||||||
|
withDuration: 0.5,
|
||||||
|
delay: 0.0,
|
||||||
|
usingSpringWithDamping: 0.5,
|
||||||
|
initialSpringVelocity: 0.2,
|
||||||
|
animations: {
|
||||||
|
self.unreadIndicatorView.frame.size = !hide ? MasterTimelineDefaultCellLayout.unreadCircleSize : CGSize.zero
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateStarView() {
|
func updateStarView() {
|
||||||
showOrHideView(starView, !cellData.starred)
|
self.starView.isHidden = !self.cellData.starred
|
||||||
|
self.starView.frame.size = self.cellData.starred ? CGSize.zero : MasterTimelineDefaultCellLayout.starSize
|
||||||
|
UIView.animate(
|
||||||
|
withDuration: 0.5,
|
||||||
|
delay: 0.0,
|
||||||
|
usingSpringWithDamping: 0.5,
|
||||||
|
initialSpringVelocity: 0.2,
|
||||||
|
animations: {
|
||||||
|
self.starView.frame.size = self.cellData.starred ? MasterTimelineDefaultCellLayout.starSize : CGSize.zero
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateAvatar() {
|
func updateAvatar() {
|
||||||
|
@ -233,10 +251,6 @@ private extension MasterTimelineTableViewCell {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func showOrHideView(_ view: UIView, _ shouldHide: Bool) {
|
|
||||||
shouldHide ? hideView(view) : showView(view)
|
|
||||||
}
|
|
||||||
|
|
||||||
func updateSubviews() {
|
func updateSubviews() {
|
||||||
updateTitleView()
|
updateTitleView()
|
||||||
updateSummaryView()
|
updateSummaryView()
|
||||||
|
|
Loading…
Reference in New Issue