Изображение не заполняет всю ширину и высоту изображения.
У меня есть следующий код:
UIGraphicsBeginImageContext(CGSizeMake(self.captureImageView.frame.size.width, self.captureImageView.frame.size.height));
[image drawInRect: CGRectMake(0, 0, self.captureImageView.frame.size.width, self.captureImageView.frame.size.height)];
UIImage *smallImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGRect cropRect = CGRectMake(0, 0, self.captureImageView.frame.size.width, self.captureImageView.frame.size.height);
CGImageRef imageRef = CGImageCreateWithImageInRect([smallImage CGImage], cropRect);
[self.captureImageView setImage:[UIImage imageWithCGImage:imageRef]];
CGImageRelease(imageRef);
//rotation
[UIView beginAnimations:@"rotate" context:nil];
[UIView setAnimationDuration:0.5];
int degrees = [self rotationDegrees];
CGFloat radians =degrees * M_PI / 180.0;
self.captureImageView.transform = CGAffineTransformMakeRotation(radians);
[UIView commitAnimations];
при захвате изображения в альбомном режиме влево или вправо изображение, представленное в представлении uiimage, не заполняет весь frame.size и всегда является "коротким"
может какой-то один момент, что исправить / добавить в мой код?
2 ответа
Установите режим содержимого представления изображения, чтобы заполнить ( ссылка):
self.captureImageView.contentMode = UIViewContentModeScaleToFill;
Предполагая, что вы используете autolayout, вы хотите убедиться, что изображение прикреплено по бокам суперпредставления (либо в IB, либо в коде, как я сделал ниже).
Вам также необходимо установить contentMode
как упомянуто @trojanfoe (в IB или коде). я использую UIViewContentModeScaleAspectFit
(вместо UIViewContentModeScaleToFill
) сохранить соотношение сторон изображения.
imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imageName]];
imageView.contentMode = UIViewContentModeScaleAspectFit;
imageView.translatesAutoresizingMaskIntoConstraints = NO;
[self addSubview:imageView];
NSArray *horzConstraints =
[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(0)-[imageView]-(0)-|"
options: NSLayoutFormatAlignAllCenterX
metrics:nil
views:@{@"imageView" : imageView}];
NSArray *vertConstraints =
[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(0)-[imageView]-(0)-|"
options: NSLayoutFormatAlignAllCenterY
metrics:nil
views:@{@"imageView" : imageView}];
[self addConstraints:horzConstraints];
[self addConstraints:vertConstraints];
Замечания: self
это супервизия imageView
в этом фрагменте кода.