Improve layer view design.

pull/1/head
Matthew Chen 7 years ago
parent 1e2a498806
commit e80e5ff9cb

@ -6,35 +6,35 @@ import Foundation
@objc @objc
class OWSLayerView: UIView { class OWSLayerView: UIView {
let layoutCallback : (() -> Void) let layoutCallback: ((UIView) -> Void)
@objc @objc
public required init(frame: CGRect, layoutCallback : @escaping () -> Void) { public required init(frame: CGRect, layoutCallback : @escaping (UIView) -> Void) {
self.layoutCallback = layoutCallback self.layoutCallback = layoutCallback
super.init(frame: frame) super.init(frame: frame)
} }
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
self.layoutCallback = { self.layoutCallback = { _ in
} }
super.init(coder: aDecoder) super.init(coder: aDecoder)
} }
override var bounds: CGRect { override var bounds: CGRect {
didSet { didSet {
layoutCallback() layoutCallback(self)
} }
} }
override var frame: CGRect { override var frame: CGRect {
didSet { didSet {
layoutCallback() layoutCallback(self)
} }
} }
override var center: CGPoint { override var center: CGPoint {
didSet { didSet {
layoutCallback() layoutCallback(self)
} }
} }
} }

@ -429,14 +429,14 @@ NS_ASSUME_NONNULL_BEGIN
(id)[UIColor colorWithWhite:0.f alpha:0.f].CGColor, (id)[UIColor colorWithWhite:0.f alpha:0.f].CGColor,
(id)[UIColor colorWithWhite:0.f alpha:0.4f].CGColor, (id)[UIColor colorWithWhite:0.f alpha:0.4f].CGColor,
]; ];
__block OWSLayerView *gradientView; OWSLayerView *gradientView =
gradientView = [[OWSLayerView alloc] initWithFrame:CGRectZero [[OWSLayerView alloc] initWithFrame:CGRectZero
layoutCallback:^{ layoutCallback:^(UIView *layerView) {
CGRect layerFrame = gradientView.bounds; CGRect layerFrame = layerView.bounds;
layerFrame.size.height = MIN(maxGradientHeight, gradientView.height); layerFrame.size.height = MIN(maxGradientHeight, layerView.height);
layerFrame.origin.y = gradientView.height - layerFrame.size.height; layerFrame.origin.y = layerView.height - layerFrame.size.height;
gradientLayer.frame = layerFrame; gradientLayer.frame = layerFrame;
}]; }];
[gradientView.layer addSublayer:gradientLayer]; [gradientView.layer addSublayer:gradientLayer];
[bodyMediaView addSubview:gradientView]; [bodyMediaView addSubview:gradientView];
[self.viewConstraints addObjectsFromArray:[gradientView autoPinToSuperviewEdges]]; [self.viewConstraints addObjectsFromArray:[gradientView autoPinToSuperviewEdges]];

@ -155,7 +155,7 @@ import SignalMessaging
self.view.addSubview(contentView) self.view.addSubview(contentView)
contentView.autoPinEdgesToSuperviewEdges() 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 } guard let strongSelf = self else { return }
strongSelf.updateImageLayout() strongSelf.updateImageLayout()
}) })

Loading…
Cancel
Save