Improve layer view design.

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

@ -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)
}
}
}

@ -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]];

@ -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()
})

Loading…
Cancel
Save