我正在做的是用從UIImagePickerController返回的圖像在視圖的背景中創建填充。圖像在肖像模式下可以很好地填充;然而,當以橫向模式填充背景時,圖像會重複,但我不知道爲什麼會出現這種情況。這是我用來調整圖像大小的私人方法。如何在IOS中使用橫向圖像填充背景?
+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize landscape:(BOOL)landscape {
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
當調用此方法時,newsize參數等於視圖邊界大小(self.view.bounds.size)。在視圖轉換爲橫向後訪問大小,但圖像不正確。
這是從UIImagePickerController獲取圖像後調用的代碼。
-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
if (image.size.width > image.size.height) {
self.view.transform = CGAffineTransformRotate(self.view.transform, M_PI_2);
self.composition.landscapemode = YES;
} else {
self.composition.landscapemode = NO;
}
self.composition.image = [NewCompositionViewController imageWithImage:image scaledToSize:self.view.bounds.size landscape:self.composition.landscapemode];
self.view.backgroundColor = [UIColor colorWithPatternImage:self.composition.image];
[self dismissViewControllerAnimated:YES completion:nil];
}