Margin and max header width

This commit is contained in:
Pfeil, Scott Robert 2020-12-18 12:46:46 -05:00
parent b962c1c002
commit ef56ed6cb3
6 changed files with 32 additions and 5 deletions

View File

@ -23,6 +23,12 @@ open class HeaderView: Container {
addSubview(molecule) addSubview(molecule)
containerHelper.constrainView(molecule) containerHelper.constrainView(molecule)
self.molecule = molecule self.molecule = molecule
guard let margins = molecule.superview?.layoutMarginsGuide else { return }
containerHelper.rightConstraint?.isActive = false
containerHelper.rightConstraint = margins.rightAnchor.constraint(equalTo: molecule.rightAnchor)
containerHelper.rightConstraint?.priority = .defaultHigh
containerHelper.rightConstraint?.isActive = true
molecule.widthAnchor.constraint(equalToConstant: 596).isActive = true
} }
// MARK: - MVMCoreViewProtocol // MARK: - MVMCoreViewProtocol

View File

@ -24,6 +24,16 @@ public class MoleculeHeaderView: MoleculeContainer {
// MARK: - MVMCoreViewProtocol // MARK: - MVMCoreViewProtocol
//-------------------------------------------------- //--------------------------------------------------
public override func addMolecule(_ molecule: UIView) {
super.addMolecule(molecule)
guard let margins = molecule.superview?.layoutMarginsGuide else { return }
containerHelper.rightConstraint?.isActive = false
containerHelper.rightConstraint = margins.rightAnchor.constraint(equalTo: molecule.rightAnchor)
containerHelper.rightConstraint?.priority = .defaultHigh
containerHelper.rightConstraint?.isActive = true
molecule.widthAnchor.constraint(lessThanOrEqualToConstant: 596).isActive = true
}
open override func updateView(_ size: CGFloat) { open override func updateView(_ size: CGFloat) {
super.updateView(size) super.updateView(size)
line.updateView(size) line.updateView(size)

View File

@ -77,7 +77,9 @@ CGFloat const LabelWithInternalButtonLineSpace = 2;
#pragma mark - Spacing Defaults #pragma mark - Spacing Defaults
+ (CGFloat)defaultHorizontalPaddingForApplicationWidth { + (CGFloat)defaultHorizontalPaddingForApplicationWidth {
return [[MFSizeObject sizeObjectWithScalingStandardSize:PaddingDefaultHorizontalSpacing] getValueBasedOnApplicationWidth]; MFSizeObject *sizeObject = [MFSizeObject sizeObjectWithStandardSize:16];
[sizeObject addLargerThanCustomSize:32 forThreshold:MFSizeMostlySweetSpotThreshold];
return [sizeObject getValueBasedOnApplicationWidth];
} }
+ (CGFloat)defaultVerticalPaddingForApplicationWidth { + (CGFloat)defaultVerticalPaddingForApplicationWidth {
@ -85,7 +87,9 @@ CGFloat const LabelWithInternalButtonLineSpace = 2;
} }
+ (CGFloat)defaultHorizontalPaddingForSize:(CGFloat)size { + (CGFloat)defaultHorizontalPaddingForSize:(CGFloat)size {
return [[MFSizeObject sizeObjectWithScalingStandardSize:PaddingDefaultHorizontalSpacing] getValueBasedOnSize:size]; MFSizeObject *sizeObject = [MFSizeObject sizeObjectWithStandardSize:16];
[sizeObject addLargerThanCustomSize:32 forThreshold:MFSizeMostlySweetSpotThreshold];
return [sizeObject getValueBasedOnSize:size];
} }
+ (CGFloat)defaultVerticalPaddingForSize:(CGFloat)size { + (CGFloat)defaultVerticalPaddingForSize:(CGFloat)size {

View File

@ -25,12 +25,14 @@ public struct Padding {
public struct Component { public struct Component {
public static let Standard: CGFloat = 24 public static let Standard: CGFloat = 24
public static let HorizontalMarginSpacing: CGFloat = 32 public static let HorizontalMarginSpacing: CGFloat = 16
public static let LargeVerticalMarginSpacing: CGFloat = 32 public static let LargeVerticalMarginSpacing: CGFloat = 32
public static let VerticalMarginSpacing: CGFloat = 24 public static let VerticalMarginSpacing: CGFloat = 24
public static var horizontalPaddingForApplicationWidth: CGFloat { public static var horizontalPaddingForApplicationWidth: CGFloat {
return MFSizeObject(scalingStandardSize: HorizontalMarginSpacing)?.getValueBasedOnApplicationWidth() ?? HorizontalMarginSpacing let sizeObject = MFSizeObject(standardSize: 16)!
sizeObject.addLargerThanCustomSize(32, forThreshold: MFSizeMostlySweetSpotThreshold)
return sizeObject.getValueBasedOnApplicationWidth()
} }
public static var verticalPaddingForApplicationWidth: CGFloat { public static var verticalPaddingForApplicationWidth: CGFloat {
@ -38,7 +40,9 @@ public struct Padding {
} }
public static func horizontalPaddingForSize(_ size: CGFloat) -> CGFloat { public static func horizontalPaddingForSize(_ size: CGFloat) -> CGFloat {
return MFSizeObject(scalingStandardSize: HorizontalMarginSpacing)?.getValueBased(onSize: size) ?? HorizontalMarginSpacing let sizeObject = MFSizeObject(standardSize: 16)!
sizeObject.addLargerThanCustomSize(32, forThreshold: MFSizeMostlySweetSpotThreshold)
return sizeObject.getValueBased(onSize: size)
} }
public static func verticalPaddingForSize(_ size: CGFloat) -> CGFloat { public static func verticalPaddingForSize(_ size: CGFloat) -> CGFloat {

View File

@ -17,6 +17,7 @@ extern CGFloat const MFSizeLargeiPhoneThreshold;
extern CGFloat const MFSizeStandardiPadPortraitThreshold; extern CGFloat const MFSizeStandardiPadPortraitThreshold;
extern CGFloat const MFSizeStandardiPadLandscapeThreshold; extern CGFloat const MFSizeStandardiPadLandscapeThreshold;
extern CGFloat const MFSizeiPadProLandscapeThreshold; extern CGFloat const MFSizeiPadProLandscapeThreshold;
extern CGFloat const MFSizeMostlySweetSpotThreshold;
@interface MFSizeObject : NSObject @interface MFSizeObject : NSObject

View File

@ -18,6 +18,8 @@ CGFloat const MFSizeLargeiPhoneThreshold = 400;
CGFloat const MFSizeStandardiPadPortraitThreshold = 600; CGFloat const MFSizeStandardiPadPortraitThreshold = 600;
CGFloat const MFSizeStandardiPadLandscapeThreshold = 1000; CGFloat const MFSizeStandardiPadLandscapeThreshold = 1000;
CGFloat const MFSizeiPadProLandscapeThreshold = 1300; CGFloat const MFSizeiPadProLandscapeThreshold = 1300;
CGFloat const MFSizeMostlySweetSpotThreshold = 750;
@interface MFSizeObject () @interface MFSizeObject ()