在我的項目中,我有「更改徽標」選項。 點擊更改標誌前的灰色標誌,圖庫打開,用戶從中選擇一張照片。這是使用以下代碼完成的:調整imagView和左欄按鈕項目的圖像大小
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
UIImage *image = info[UIImagePickerControllerOriginalImage];
[imagePicker dismissViewControllerAnimated:YES completion:nil];
imgToBeSaved = image;
self.imgViewChooseLogo.contentMode = UIViewContentModeScaleAspectFit;
self.imgViewChooseLogo.image = image;
imageChanged = YES;
}
現在這張圖片保存在文檔目錄中。由於此圖像應作爲所有視圖控制器的標誌。所以我必須把它設置爲使用下面的代碼左側欄按鈕項目:
NSData *imageData = [NSData dataWithContentsOfFile:[AppDelegate documentDirectoryWithFilePath]];
UIImage *image = [UIImage imageWithData:imageData];
UIImage *new = [AppDelegate imageWithImage:image scaledToSize:CGSizeMake(150, 40)];
UIImage *new1 = [new imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithImage:new1 style:UIBarButtonItemStylePlain target:nil action:nil];
[self.navigationItem setLeftBarButtonItem:barButtonItem];
在其中方法scaledToSize竟把
+(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize;
{
UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
我已經使用了150 * 40,使得我的默認標誌完全吻合。問題來了,當我不得不使用從畫廊選擇一些其他圖像。它延伸在酒吧按鈕項目上。我不知道如何設置選擇圖庫圖像的高度和寬度的比例,以便圖像不會在左側的條形圖項目上顯示。
如果你不想舒展你應該裁剪圖像 - 右 –
BT?我怎麼知道圖像的哪個部分會被裁剪?我被要求調整圖像的寬度和高度,以便從圖庫中選取的照片看起來不會扭曲 – mars
您應該讓用戶決定: D - 看我的回答 –