fix: profile title view not align center issue. resolve #117.
This commit is contained in:
parent
4b96ac4481
commit
df2a73d96c
|
@ -328,7 +328,9 @@ extension ProfileHeaderViewController {
|
|||
let nameTextFieldInWindow = profileHeaderView.nameTextField.superview!.convert(profileHeaderView.nameTextField.frame, to: nil)
|
||||
let nameTextFieldTopToNavigationBarBottomOffset = containerSafeAreaInset.top - nameTextFieldInWindow.origin.y
|
||||
let titleViewContentOffset: CGFloat = titleView.frame.height - nameTextFieldTopToNavigationBarBottomOffset
|
||||
titleView.containerView.transform = CGAffineTransform(translationX: 0, y: max(0, titleViewContentOffset))
|
||||
let transformY = max(0, titleViewContentOffset)
|
||||
titleView.containerView.transform = CGAffineTransform(translationX: 0, y: transformY)
|
||||
viewModel.isTitleViewDisplaying.value = transformY < titleView.containerView.frame.height
|
||||
|
||||
if viewModel.viewDidAppear.value {
|
||||
viewModel.isTitleViewContentOffsetSet.value = true
|
||||
|
@ -347,6 +349,7 @@ extension ProfileHeaderViewController {
|
|||
}
|
||||
|
||||
private func setProfileBannerFade(alpha: CGFloat) {
|
||||
profileHeaderView.avatarImageViewBackgroundView.alpha = alpha
|
||||
profileHeaderView.avatarImageView.alpha = alpha
|
||||
profileHeaderView.editAvatarBackgroundView.alpha = alpha
|
||||
profileHeaderView.nameTextFieldBackgroundView.alpha = alpha
|
||||
|
|
|
@ -24,6 +24,7 @@ final class ProfileHeaderViewModel {
|
|||
// output
|
||||
let displayProfileInfo = ProfileInfo()
|
||||
let editProfileInfo = ProfileInfo()
|
||||
let isTitleViewDisplaying = CurrentValueSubject<Bool, Never>(false)
|
||||
|
||||
init(context: AppContext) {
|
||||
self.context = context
|
||||
|
|
|
@ -172,13 +172,14 @@ extension ProfileViewController {
|
|||
}
|
||||
.store(in: &disposeBag)
|
||||
|
||||
Publishers.CombineLatest3 (
|
||||
Publishers.CombineLatest4 (
|
||||
viewModel.suspended.eraseToAnyPublisher(),
|
||||
profileHeaderViewController.viewModel.isTitleViewDisplaying.eraseToAnyPublisher(),
|
||||
editingAndUpdatingPublisher.eraseToAnyPublisher(),
|
||||
barButtonItemHiddenPublisher.eraseToAnyPublisher()
|
||||
)
|
||||
.receive(on: DispatchQueue.main)
|
||||
.sink { [weak self] suspended, tuple1, tuple2 in
|
||||
.sink { [weak self] suspended, isTitleViewDisplaying, tuple1, tuple2 in
|
||||
guard let self = self else { return }
|
||||
let (isEditing, _) = tuple1
|
||||
let (isMeBarButtonItemsHidden, isReplyBarButtonItemHidden, isMoreMenuBarButtonItemHidden) = tuple2
|
||||
|
@ -197,6 +198,10 @@ extension ProfileViewController {
|
|||
return
|
||||
}
|
||||
|
||||
guard !isTitleViewDisplaying else {
|
||||
return
|
||||
}
|
||||
|
||||
guard isMeBarButtonItemsHidden else {
|
||||
items.append(self.settingBarButtonItem)
|
||||
items.append(self.shareBarButtonItem)
|
||||
|
|
Loading…
Reference in New Issue