From e80e5ff9cbbfbddea7dd830b801091a844149a6a Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Thu, 28 Jun 2018 15:56:25 -0400 Subject: [PATCH] Improve layer view design. --- Signal/src/UserInterface/OWSLayerView.swift | 12 ++++++------ .../Cells/OWSMessageBubbleView.m | 16 ++++++++-------- .../CropScaleImageViewController.swift | 2 +- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Signal/src/UserInterface/OWSLayerView.swift b/Signal/src/UserInterface/OWSLayerView.swift index ddee5070f..5ff12aaa1 100644 --- a/Signal/src/UserInterface/OWSLayerView.swift +++ b/Signal/src/UserInterface/OWSLayerView.swift @@ -6,35 +6,35 @@ import Foundation @objc class OWSLayerView: UIView { - let layoutCallback : (() -> Void) + let layoutCallback: ((UIView) -> Void) @objc - public required init(frame: CGRect, layoutCallback : @escaping () -> Void) { + public required init(frame: CGRect, layoutCallback : @escaping (UIView) -> Void) { self.layoutCallback = layoutCallback super.init(frame: frame) } required init?(coder aDecoder: NSCoder) { - self.layoutCallback = { + self.layoutCallback = { _ in } super.init(coder: aDecoder) } override var bounds: CGRect { didSet { - layoutCallback() + layoutCallback(self) } } override var frame: CGRect { didSet { - layoutCallback() + layoutCallback(self) } } override var center: CGPoint { didSet { - layoutCallback() + layoutCallback(self) } } } diff --git a/Signal/src/ViewControllers/ConversationView/Cells/OWSMessageBubbleView.m b/Signal/src/ViewControllers/ConversationView/Cells/OWSMessageBubbleView.m index 7ebf78eb5..4d1713ccb 100644 --- a/Signal/src/ViewControllers/ConversationView/Cells/OWSMessageBubbleView.m +++ b/Signal/src/ViewControllers/ConversationView/Cells/OWSMessageBubbleView.m @@ -429,14 +429,14 @@ NS_ASSUME_NONNULL_BEGIN (id)[UIColor colorWithWhite:0.f alpha:0.f].CGColor, (id)[UIColor colorWithWhite:0.f alpha:0.4f].CGColor, ]; - __block OWSLayerView *gradientView; - gradientView = [[OWSLayerView alloc] initWithFrame:CGRectZero - layoutCallback:^{ - CGRect layerFrame = gradientView.bounds; - layerFrame.size.height = MIN(maxGradientHeight, gradientView.height); - layerFrame.origin.y = gradientView.height - layerFrame.size.height; - gradientLayer.frame = layerFrame; - }]; + OWSLayerView *gradientView = + [[OWSLayerView alloc] initWithFrame:CGRectZero + layoutCallback:^(UIView *layerView) { + CGRect layerFrame = layerView.bounds; + layerFrame.size.height = MIN(maxGradientHeight, layerView.height); + layerFrame.origin.y = layerView.height - layerFrame.size.height; + gradientLayer.frame = layerFrame; + }]; [gradientView.layer addSublayer:gradientLayer]; [bodyMediaView addSubview:gradientView]; [self.viewConstraints addObjectsFromArray:[gradientView autoPinToSuperviewEdges]]; diff --git a/Signal/src/ViewControllers/CropScaleImageViewController.swift b/Signal/src/ViewControllers/CropScaleImageViewController.swift index 430c26ed0..bd47d2757 100644 --- a/Signal/src/ViewControllers/CropScaleImageViewController.swift +++ b/Signal/src/ViewControllers/CropScaleImageViewController.swift @@ -155,7 +155,7 @@ import SignalMessaging self.view.addSubview(contentView) contentView.autoPinEdgesToSuperviewEdges() - let imageView = OWSLayerView(frame: CGRect.zero, layoutCallback: { [weak self] in + let imageView = OWSLayerView(frame: CGRect.zero, layoutCallback: { [weak self] _ in guard let strongSelf = self else { return } strongSelf.updateImageLayout() })