CR: clamp reasonable aspect ratio

// FREEBIE
This commit is contained in:
Michael Kirk 2017-10-05 09:20:59 -04:00
parent 14b6f31635
commit 580e82beae
1 changed files with 7 additions and 2 deletions

View File

@ -105,14 +105,19 @@ CGFloat ScaleFromIPhone5(CGFloat iPhone5Value)
- (NSLayoutConstraint *)autoPinToAspectRatio:(CGFloat)ratio
{
self.translatesAutoresizingMaskIntoConstraints = NO;
// Clamp to ensure view has reasonable aspect ratio.
CGFloat clampedRatio = Clamp(ratio, 0.5, 95.0);
if (clampedRatio != ratio) {
OWSFail(@"Invalid aspect ratio: %f for view: %@", ratio, self);
}
self.translatesAutoresizingMaskIntoConstraints = NO;
NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:self
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:self
attribute:NSLayoutAttributeHeight
multiplier:ratio
multiplier:clampedRatio
constant:0.f];
[constraint autoInstall];
return constraint;