Merge branch 'bugfix/top_notification' into 'develop'

fixes for notification button

See merge request BPHV_MIPS/mvm_core_ui!425
This commit is contained in:
Pfeil, Scott Robert 2020-05-07 14:23:05 -04:00
commit 105ed8e320
3 changed files with 24 additions and 6 deletions

View File

@ -26,6 +26,22 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol {
didSet { style() }
}
open var buttonSize: Styler.Button.Size = .standard {
didSet {
buttonModel?.size = buttonSize
}
}
//--------------------------------------------------
// MARK: - Initializers
//--------------------------------------------------
@objc public convenience init(asPrimaryButton isPrimary: Bool, makeTiny istiny: Bool) {
self.init()
buttonSize = istiny ? .tiny : .standard
isPrimary ? stylePrimary() : styleSecondary()
}
//--------------------------------------------------
// MARK: - Computed Properties
//--------------------------------------------------
@ -116,7 +132,7 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol {
}
private func getHeight() -> CGFloat {
PillButton.getHeight(for: buttonModel?.size, size: size)
PillButton.getHeight(for: buttonSize, size: size)
}
public static func getHeight(for buttonSize: Styler.Button.Size?, size: CGFloat) -> CGFloat {
@ -138,7 +154,7 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol {
private func getMinimumWidth() -> CGFloat {
switch buttonModel?.size {
switch buttonSize {
case .tiny:
return MFSizeObject(standardSize: 49,
standardiPadPortraitSize: 90,
@ -165,7 +181,9 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol {
guard let model = model as? ButtonModel else { return }
setTitle(model.title, for: .normal)
if let size = model.size {
buttonSize = size
}
model.updateUI = { [weak self] in
MVMCoreDispatchUtility.performBlock(onMainThread: {
self?.enableField(model.enabled)
@ -185,7 +203,7 @@ open class PillButton: Button, MVMCoreUIViewConstrainingProtocol {
invalidateIntrinsicContentSize()
switch buttonModel?.size {
switch buttonSize {
case .tiny:
titleLabel?.font = MFFonts.mfFont75Bd(11 * (intrinsicContentSize.height / Styler.Button.Size.tiny.getHeight()))

View File

@ -188,14 +188,13 @@
self.labelRightConstraint.active = NO;
// Sets up to use a button action. Always uses the top view controller
PillButton *button = [[PillButton alloc] init];
PillButton *button = [[PillButton alloc] initAsPrimaryButton:false makeTiny:true];
[button styleSecondary];
[button setContentCompressionResistancePriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal];
[button setContentHuggingPriority:800 forAxis:UILayoutConstraintAxisHorizontal];
button.translatesAutoresizingMaskIntoConstraints = NO;
[self addSubview:button];
[NSLayoutConstraint activateConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|->=space-[button]->=space-|" options:NSLayoutFormatDirectionLeadingToTrailing metrics:@{@"space":@(PaddingFive)} views:NSDictionaryOfVariableBindings(button)]];
[NSLayoutConstraint constraintWithItem:button attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0].active = YES;
[NSLayoutConstraint constraintWithItem:button attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.centerView attribute:NSLayoutAttributeRight multiplier:1 constant:PaddingThree].active = YES;
[NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:button attribute:NSLayoutAttributeRight multiplier:1 constant:(self.closeButton ? PaddingTen : PaddingFive)].active = YES;

View File

@ -160,6 +160,7 @@ NSString * const MFAccTopAlertClosed = @"Top alert notification is closed.";
UIColor *statusBarColor = nil;
UIStatusBarStyle statusBarStyle = UIStatusBarStyleDefault;
MVMCoreUITopAlertBaseView *view = [self topAlertViewForTopAlertObject:topAlertObject animationDelegate:animationDelegate statusBarColor:&statusBarColor statusBarStyle:&statusBarStyle];
[view updateView:CGRectGetWidth(self.bounds)];
if (!statusBarColor) {
statusBarColor = [UIColor whiteColor];
}