chore: update horizontal compact mode notification timeline margin looks like

This commit is contained in:
CMK 2022-02-18 19:09:12 +08:00
parent cc3826dd1f
commit 91e2882154
2 changed files with 18 additions and 5 deletions

View File

@ -50,13 +50,13 @@ extension NotificationTableViewCell {
notificationView.translatesAutoresizingMaskIntoConstraints = false notificationView.translatesAutoresizingMaskIntoConstraints = false
contentView.addSubview(notificationView) contentView.addSubview(notificationView)
setupContainerViewMarginConstraints() setupContainerViewMarginConstraints()
updateContainerViewMarginConstraints()
NSLayoutConstraint.activate([ NSLayoutConstraint.activate([
notificationView.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 16), notificationView.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 16),
containerViewLeadingLayoutConstraint, containerViewLeadingLayoutConstraint,
containerViewTrailingLayoutConstraint, containerViewTrailingLayoutConstraint,
contentView.bottomAnchor.constraint(equalTo: notificationView.bottomAnchor), contentView.bottomAnchor.constraint(equalTo: notificationView.bottomAnchor),
]) ])
updateContainerViewMarginConstraints()
separatorLine.translatesAutoresizingMaskIntoConstraints = false separatorLine.translatesAutoresizingMaskIntoConstraints = false
contentView.addSubview(separatorLine) contentView.addSubview(separatorLine)
@ -78,6 +78,12 @@ extension NotificationTableViewCell {
notificationView.delegate = self notificationView.delegate = self
} }
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
super.traitCollectionDidChange(previousTraitCollection)
updateContainerViewMarginConstraints()
}
} }
// MARK: - AdaptiveContainerMarginTableViewCell // MARK: - AdaptiveContainerMarginTableViewCell

View File

@ -57,6 +57,7 @@ public final class NotificationView: UIView {
}() }()
// author // author
let authorAdaptiveMarginContainerView = AdaptiveMarginContainerView()
let authorContainerView: UIStackView = { let authorContainerView: UIStackView = {
let stackView = UIStackView() let stackView = UIStackView()
stackView.axis = .horizontal stackView.axis = .horizontal
@ -148,9 +149,10 @@ extension NotificationView {
]) ])
// author container: H - [ avatarButton | author meta container ] // author container: H - [ avatarButton | author meta container ]
authorContainerView.preservesSuperviewLayoutMargins = true authorAdaptiveMarginContainerView.contentView = authorContainerView
authorContainerView.isLayoutMarginsRelativeArrangement = true authorAdaptiveMarginContainerView.margin = StatusView.containerLayoutMargin
containerStackView.addArrangedSubview(authorContainerView) containerStackView.addArrangedSubview(authorAdaptiveMarginContainerView)
UIContentSizeCategory.publisher UIContentSizeCategory.publisher
.sink { [weak self] category in .sink { [weak self] category in
guard let self = self else { return } guard let self = self else { return }
@ -226,7 +228,7 @@ extension NotificationView {
// quoteStatusView // quoteStatusView
containerStackView.addArrangedSubview(quoteStatusViewContainerView) containerStackView.addArrangedSubview(quoteStatusViewContainerView)
quoteStatusViewContainerView.layoutMargins.bottom = 16 quoteStatusViewContainerView.layoutMargins = UIEdgeInsets(top: 0, left: 0, bottom: 16, right: 0)
quoteBackgroundView.layoutMargins = UIEdgeInsets(top: 16, left: 0, bottom: 0, right: 0) quoteBackgroundView.layoutMargins = UIEdgeInsets(top: 16, left: 0, bottom: 0, right: 0)
quoteBackgroundView.translatesAutoresizingMaskIntoConstraints = false quoteBackgroundView.translatesAutoresizingMaskIntoConstraints = false
@ -294,6 +296,11 @@ extension NotificationView {
// MARK: - AdaptiveContainerView // MARK: - AdaptiveContainerView
extension NotificationView: AdaptiveContainerView { extension NotificationView: AdaptiveContainerView {
public func updateContainerViewComponentsLayoutMarginsRelativeArrangementBehavior(isEnabled: Bool) { public func updateContainerViewComponentsLayoutMarginsRelativeArrangementBehavior(isEnabled: Bool) {
let margin = isEnabled ? StatusView.containerLayoutMargin : .zero
authorAdaptiveMarginContainerView.margin = margin
quoteStatusViewContainerView.layoutMargins.left = margin
quoteStatusViewContainerView.layoutMargins.right = margin
statusView.updateContainerViewComponentsLayoutMarginsRelativeArrangementBehavior(isEnabled: isEnabled) statusView.updateContainerViewComponentsLayoutMarginsRelativeArrangementBehavior(isEnabled: isEnabled)
quoteStatusView.updateContainerViewComponentsLayoutMarginsRelativeArrangementBehavior(isEnabled: true) // always set margins quoteStatusView.updateContainerViewComponentsLayoutMarginsRelativeArrangementBehavior(isEnabled: true) // always set margins
} }