Don't resize attachment view when switching between alerts.

// FREEBIE
pull/1/head
sdkjfhsdkjhfsdlkjhfsdf 7 years ago
parent 697fc4ff4b
commit 6b5883dc10

@ -206,11 +206,11 @@ public class AttachmentApprovalViewController: OWSViewController, CaptioningTool
// MARK: CaptioningToolbarDelegate
func captioningToolbarDidBeginEditing(_ captioningToolbar: CaptioningToolbar) {
self.shouldShrinkAttachment = true
self.scaleAttachmentView(.compact)
}
func captioningToolbarDidEndEditing(_ captioningToolbar: CaptioningToolbar) {
self.shouldShrinkAttachment = false
self.scaleAttachmentView(.fullsize)
}
func captioningToolbarDidTapSend(_ captioningToolbar: CaptioningToolbar, captionText: String?) {
@ -231,36 +231,53 @@ public class AttachmentApprovalViewController: OWSViewController, CaptioningTool
// Toolbar flickers in and out if there are errors
// and remains visible momentarily after share extension is dismissed.
// It's easiest to just hide it at this point since we're done with it.
self.bottomToolbar.isUserInteractionEnabled = false
self.bottomToolbar.isHidden = true
shouldAllowAttachmentViewResizing = false
bottomToolbar.isUserInteractionEnabled = false
bottomToolbar.isHidden = true
attachment.captionText = captionText
self.delegate?.attachmentApproval(self, didApproveAttachment: attachment)
delegate?.attachmentApproval(self, didApproveAttachment: attachment)
}
// When the keyboard is popped, it can obscure the attachment view.
private var shouldShrinkAttachment: Bool = false {
didSet {
UIView.animate(withDuration: 0.2) {
if self.shouldShrinkAttachment {
let kScaleFactor: CGFloat = 0.7
let scale = CGAffineTransform(scaleX: kScaleFactor, y: kScaleFactor)
// so we sometimes allows resizing the attachment.
private var shouldAllowAttachmentViewResizing: Bool = true
let originalHeight = self.scrollView.bounds.size.height
// Position the new scaled item to be centered with respect
// to it's new size.
let heightDelta = originalHeight * (1 - kScaleFactor)
let translate = CGAffineTransform(translationX: 0, y: -heightDelta / 2)
enum AttachmetViewScale {
case fullsize, compact
}
self.scrollView.transform = scale.concatenating(translate)
} else {
private func scaleAttachmentView(_ fit: AttachmetViewScale) {
guard shouldAllowAttachmentViewResizing else {
if self.scrollView.transform != CGAffineTransform.identity {
UIView.animate(withDuration: 0.2) {
self.scrollView.transform = CGAffineTransform.identity
}
}
return
}
}
switch fit {
case .fullsize:
UIView.animate(withDuration: 0.2) {
self.scrollView.transform = CGAffineTransform.identity
}
case .compact:
UIView.animate(withDuration: 0.2) {
let kScaleFactor: CGFloat = 0.7
let scale = CGAffineTransform(scaleX: kScaleFactor, y: kScaleFactor)
let originalHeight = self.scrollView.bounds.size.height
// Position the new scaled item to be centered with respect
// to it's new size.
let heightDelta = originalHeight * (1 - kScaleFactor)
let translate = CGAffineTransform(translationX: 0, y: -heightDelta / 2)
self.scrollView.transform = scale.concatenating(translate)
}
}
}
}
extension AttachmentApprovalViewController: UIScrollViewDelegate {

Loading…
Cancel
Save