Implement methods in NSLayoutConstraint

This commit is contained in:
Gregory John Casamento 2020-05-10 08:35:49 -04:00
parent 86e4e58df3
commit c99d9f68d7
2 changed files with 48 additions and 6 deletions

View file

@ -115,12 +115,22 @@ typedef NSUInteger NSLayoutFormatOptions;
CGFloat _constant;
NSLayoutPriority _priority;
}
+ (NSArray *)constraintsWithVisualFormat: (NSString *)fmt
options: (NSLayoutFormatOptions)opt
metrics: (NSDictionary *)metrics
views: (NSDictionary *)views;
// GNUstep extension...
- (instancetype) initWithItem: (id)view1
attribute: (NSLayoutAttribute)attr1
relatedBy: (NSLayoutRelation)relation
toItem: (id)view2
attribute: (NSLayoutAttribute)attr2
multiplier: (CGFloat)mult
constant: (CGFloat)c;
// Designated initializer...
+ (instancetype) constraintWithItem: (id)view1
attribute: (NSLayoutAttribute)attr1
relatedBy: (NSLayoutRelation)relation

View file

@ -35,14 +35,37 @@
static NSMutableArray *activeConstraints;
@implementation NSLayoutConstraint
+ (NSArray *)constraintsWithVisualFormat: (NSString *)fmt
options: (NSLayoutFormatOptions)opt
metrics: (NSDictionary *)metrics
views: (NSDictionary *)views
+ (NSArray *) constraintsWithVisualFormat: (NSString *)fmt
options: (NSLayoutFormatOptions)opt
metrics: (NSDictionary *)metrics
views: (NSDictionary *)views
{
return nil;
}
- (instancetype) initWithItem: (id)view1
attribute: (NSLayoutAttribute)attr1
relatedBy: (NSLayoutRelation)relation
toItem: (id)view2
attribute: (NSLayoutAttribute)attr2
multiplier: (CGFloat)mult
constant: (CGFloat)c;
{
self = [super init];
if (self != nil)
{
_firstItem = view1;
_secondItem = view2;
_firstAttribute = attr1;
_secondAttribute = attr2;
_relation = relation;
_multiplier = mult;
_constant = c;
}
return self;
}
// Designated initializer...
+ (instancetype) constraintWithItem: (id)view1
attribute: (NSLayoutAttribute)attr1
relatedBy: (NSLayoutRelation)relation
@ -51,7 +74,16 @@ static NSMutableArray *activeConstraints;
multiplier: (CGFloat)mult
constant: (CGFloat)c
{
return nil;
NSLayoutConstraint *constraint =
[[NSLayoutConstraint alloc] initWithItem: view1
attribute: attr1
relatedBy: relation
toItem: view2
attribute: attr2
multiplier: mult
constant: c];
AUTORELEASE(constraint);
return constraint;
}
// Active