forked from zelo72/mastodon-ios
fix: statusView layout issue
This commit is contained in:
parent
845080a69d
commit
ecf622b866
|
@ -123,9 +123,11 @@ extension HashtagTimelineViewModel.LoadOldestState {
|
|||
assertionFailure()
|
||||
return
|
||||
}
|
||||
var snapshot = diffableDataSource.snapshot()
|
||||
snapshot.deleteItems([.bottomLoader])
|
||||
diffableDataSource.apply(snapshot)
|
||||
DispatchQueue.main.async {
|
||||
var snapshot = diffableDataSource.snapshot()
|
||||
snapshot.deleteItems([.bottomLoader])
|
||||
diffableDataSource.apply(snapshot)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -103,9 +103,11 @@ extension HomeTimelineViewModel.LoadOldestState {
|
|||
assertionFailure()
|
||||
return
|
||||
}
|
||||
var snapshot = diffableDataSource.snapshot()
|
||||
snapshot.deleteItems([.bottomLoader])
|
||||
diffableDataSource.apply(snapshot)
|
||||
DispatchQueue.main.async {
|
||||
var snapshot = diffableDataSource.snapshot()
|
||||
snapshot.deleteItems([.bottomLoader])
|
||||
diffableDataSource.apply(snapshot)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -133,9 +133,11 @@ extension NotificationViewModel.LoadOldestState {
|
|||
assertionFailure()
|
||||
return
|
||||
}
|
||||
var snapshot = diffableDataSource.snapshot()
|
||||
snapshot.deleteItems([.bottomLoader])
|
||||
diffableDataSource.apply(snapshot)
|
||||
DispatchQueue.main.async {
|
||||
var snapshot = diffableDataSource.snapshot()
|
||||
snapshot.deleteItems([.bottomLoader])
|
||||
diffableDataSource.apply(snapshot)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,7 +46,6 @@ extension NotificationViewModel: NSFetchedResultsControllerDelegate {
|
|||
guard let navigationBar = contentOffsetAdjustableTimelineViewControllerDelegate?.navigationBar() else { return }
|
||||
|
||||
guard let diffableDataSource = self.diffableDataSource else { return }
|
||||
let oldSnapshot = diffableDataSource.snapshot()
|
||||
|
||||
let predicate = fetchedResultsController.fetchRequest.predicate
|
||||
let parentManagedObjectContext = fetchedResultsController.managedObjectContext
|
||||
|
@ -66,16 +65,18 @@ extension NotificationViewModel: NSFetchedResultsControllerDelegate {
|
|||
}
|
||||
}()
|
||||
|
||||
var newSnapshot = NSDiffableDataSourceSnapshot<NotificationSection, NotificationItem>()
|
||||
newSnapshot.appendSections([.main])
|
||||
newSnapshot.appendItems(notifications.map { NotificationItem.notification(objectID: $0.objectID) }, toSection: .main)
|
||||
if !notifications.isEmpty, self.noMoreNotification.value == false {
|
||||
newSnapshot.appendItems([.bottomLoader], toSection: .main)
|
||||
}
|
||||
|
||||
DispatchQueue.main.async {
|
||||
let oldSnapshot = diffableDataSource.snapshot()
|
||||
var newSnapshot = NSDiffableDataSourceSnapshot<NotificationSection, NotificationItem>()
|
||||
newSnapshot.appendSections([.main])
|
||||
newSnapshot.appendItems(notifications.map { NotificationItem.notification(objectID: $0.objectID) }, toSection: .main)
|
||||
if !notifications.isEmpty, self.noMoreNotification.value == false {
|
||||
newSnapshot.appendItems([.bottomLoader], toSection: .main)
|
||||
}
|
||||
guard let difference = self.calculateReloadSnapshotDifference(navigationBar: navigationBar, tableView: tableView, oldSnapshot: oldSnapshot, newSnapshot: newSnapshot) else {
|
||||
diffableDataSource.apply(newSnapshot)
|
||||
diffableDataSource.apply(newSnapshot, animatingDifferences: false) {
|
||||
tableView.reloadData()
|
||||
}
|
||||
self.isFetchingLatestNotification.value = false
|
||||
return
|
||||
}
|
||||
|
|
|
@ -58,7 +58,7 @@ final class NotificationStatusTableViewCell: UITableViewCell {
|
|||
return label
|
||||
}()
|
||||
|
||||
let statusContainer: UIView = {
|
||||
let statusBorder: UIView = {
|
||||
let view = UIView()
|
||||
view.backgroundColor = .clear
|
||||
view.layer.cornerRadius = 6
|
||||
|
@ -147,8 +147,8 @@ extension NotificationStatusTableViewCell {
|
|||
statusView.avatarView.removeFromSuperview()
|
||||
statusView.usernameLabel.removeFromSuperview()
|
||||
|
||||
container.addSubview(statusContainer)
|
||||
statusContainer.pin(top: 40, left: 63, bottom: 14, right: 14)
|
||||
container.addSubview(statusBorder)
|
||||
statusBorder.pin(top: 40, left: 63, bottom: 14, right: 14)
|
||||
|
||||
container.addSubview(statusView)
|
||||
statusView.pin(top: NotificationStatusTableViewCell.statusPadding.top, left: NotificationStatusTableViewCell.statusPadding.left, bottom: NotificationStatusTableViewCell.statusPadding.bottom, right: NotificationStatusTableViewCell.statusPadding.right)
|
||||
|
@ -156,7 +156,7 @@ extension NotificationStatusTableViewCell {
|
|||
|
||||
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
|
||||
super.traitCollectionDidChange(previousTraitCollection)
|
||||
statusContainer.layer.borderColor = Asset.Colors.Border.notification.color.cgColor
|
||||
statusBorder.layer.borderColor = Asset.Colors.Border.notification.color.cgColor
|
||||
actionImageBackground.layer.borderColor = Asset.Colors.Background.pure.color.cgColor
|
||||
}
|
||||
}
|
||||
|
|
|
@ -136,9 +136,11 @@ extension SearchViewModel.LoadOldestState {
|
|||
assertionFailure()
|
||||
return
|
||||
}
|
||||
var snapshot = diffableDataSource.snapshot()
|
||||
snapshot.deleteItems([.bottomLoader])
|
||||
diffableDataSource.apply(snapshot)
|
||||
DispatchQueue.main.async {
|
||||
var snapshot = diffableDataSource.snapshot()
|
||||
snapshot.deleteItems([.bottomLoader])
|
||||
diffableDataSource.apply(snapshot)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -43,8 +43,5 @@ final class CommonBottomLoader: UITableViewCell {
|
|||
backgroundColor = Asset.Colors.Background.systemGroupedBackground.color
|
||||
contentView.addSubview(activityIndicatorView)
|
||||
activityIndicatorView.constrainToCenter()
|
||||
NSLayoutConstraint.activate([
|
||||
contentView.heightAnchor.constraint(equalToConstant: 44)
|
||||
])
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue