mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
fix scroll button
This commit is contained in:
parent
0475274b4d
commit
55786d6f17
|
@ -8,7 +8,7 @@ final class ConversationVC : BaseVC, ConversationViewModelDelegate, OWSConversat
|
||||||
let thread: TSThread
|
let thread: TSThread
|
||||||
let focusedMessageID: String? // This isn't actually used ATM
|
let focusedMessageID: String? // This isn't actually used ATM
|
||||||
var unreadViewItems: [ConversationViewItem] = []
|
var unreadViewItems: [ConversationViewItem] = []
|
||||||
var didConstrainScrollButton = false // Part of a workaround to get the scroll button to show up in the right place
|
var scrollButtonConstraint: NSLayoutConstraint?
|
||||||
// Search
|
// Search
|
||||||
var isShowingSearchUI = false
|
var isShowingSearchUI = false
|
||||||
var lastSearchedText: String?
|
var lastSearchedText: String?
|
||||||
|
@ -170,6 +170,7 @@ final class ConversationVC : BaseVC, ConversationViewModelDelegate, OWSConversat
|
||||||
messagesTableView.pin(to: view)
|
messagesTableView.pin(to: view)
|
||||||
view.addSubview(scrollButton)
|
view.addSubview(scrollButton)
|
||||||
scrollButton.pin(.right, to: .right, of: view, withInset: -16)
|
scrollButton.pin(.right, to: .right, of: view, withInset: -16)
|
||||||
|
scrollButtonConstraint = scrollButton.pin(.bottom, to: .bottom, of: view, withInset: -16)
|
||||||
// Unread count view
|
// Unread count view
|
||||||
view.addSubview(unreadCountView)
|
view.addSubview(unreadCountView)
|
||||||
unreadCountView.addSubview(unreadCountLabel)
|
unreadCountView.addSubview(unreadCountLabel)
|
||||||
|
@ -295,10 +296,8 @@ final class ConversationVC : BaseVC, ConversationViewModelDelegate, OWSConversat
|
||||||
baselineKeyboardHeight = newHeight
|
baselineKeyboardHeight = newHeight
|
||||||
self.messagesTableView.keyboardHeight = newHeight
|
self.messagesTableView.keyboardHeight = newHeight
|
||||||
}
|
}
|
||||||
if !didConstrainScrollButton {
|
if (newHeight >= self.messagesTableView.keyboardHeight) {
|
||||||
// HACK: Part of a workaround to get the scroll button to show up in the right place
|
scrollButtonConstraint?.constant = -(newHeight + 16)
|
||||||
scrollButton.pin(.bottom, to: .bottom, of: view, withInset: -(newHeight + 16)) // + 16 to match the bottom inset of the table view
|
|
||||||
didConstrainScrollButton = true
|
|
||||||
}
|
}
|
||||||
let newContentOffsetY = max(self.messagesTableView.contentOffset.y + min(lastPageTop, 0) + newHeight - self.messagesTableView.keyboardHeight, 0.0)
|
let newContentOffsetY = max(self.messagesTableView.contentOffset.y + min(lastPageTop, 0) + newHeight - self.messagesTableView.keyboardHeight, 0.0)
|
||||||
self.messagesTableView.contentOffset.y = newContentOffsetY
|
self.messagesTableView.contentOffset.y = newContentOffsetY
|
||||||
|
@ -309,6 +308,7 @@ final class ConversationVC : BaseVC, ConversationViewModelDelegate, OWSConversat
|
||||||
@objc func handleKeyboardWillHideNotification(_ notification: Notification) {
|
@objc func handleKeyboardWillHideNotification(_ notification: Notification) {
|
||||||
self.messagesTableView.contentOffset.y -= (self.messagesTableView.keyboardHeight - self.baselineKeyboardHeight)
|
self.messagesTableView.contentOffset.y -= (self.messagesTableView.keyboardHeight - self.baselineKeyboardHeight)
|
||||||
self.messagesTableView.keyboardHeight = self.baselineKeyboardHeight
|
self.messagesTableView.keyboardHeight = self.baselineKeyboardHeight
|
||||||
|
scrollButtonConstraint?.constant = -(self.baselineKeyboardHeight + 16)
|
||||||
self.scrollButton.alpha = self.getScrollButtonOpacity()
|
self.scrollButton.alpha = self.getScrollButtonOpacity()
|
||||||
self.unreadCountView.alpha = self.scrollButton.alpha
|
self.unreadCountView.alpha = self.scrollButton.alpha
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue