У меня есть модальный, который отображает UIImagePicker и позволяет пользователю делать снимок, который затем помещается в UIImageView.UIImagePicker Camera Memory Предупреждение останавливает изображение от установки UIImageView
Время от времени я получаю предупреждение о сохранении памяти «Предупреждение о принимаемой памяти», а UIImageView не присваивается. Приложение довольно простое, и оно не использует много памяти, и кажется, что много времени это связано с ImagePicker как отдельным процессом. Это происходит только при использовании камеры, и это происходит примерно один раз в пять раз.
Существует lot of talk about this online, и большинство ответов говорят «надлежащим образом обрабатывать предупреждение»; но я не уверен, что это значит - я просто хочу, чтобы полученная фотография отображалась в ImageView! Кажется, это произойдет, прежде чем я смогу сделать что-нибудь в этом деле в делегате UIImagePicker.
Что можно сделать для смягчения этого ?
Вот didFinishPickingImage делегат:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)selectedImage editingInfo:(NSDictionary *)editingInfo {
//set background for image select button, put image reference somewhere to copy image to documents folder and insert into modular's sentence object.
//ImagePicker.jpg needs it's border set to 1px black.
NSLog(@"imagePickerController: selectedimage: %@", selectedImage);
imageViewBehindPhotoBigButton.clipsToBounds = YES;
[imageViewBehindPhotoBigButton.layer setBorderColor: [[UIColor blackColor] CGColor]];
[imageViewBehindPhotoBigButton.layer setBorderWidth: 1.0];
[imageViewBehindPhotoBigButton setBackgroundColor:[UIColor whiteColor]];
[imageViewBehindPhotoBigButton setContentMode: UIViewContentModeScaleAspectFill];
imageViewBehindPhotoBigButton.image = selectedImage;
imageViewBehindPhotoBigButton.hidden = NO;
[choosePhotoBigButton setBackgroundImage:nil forState:UIControlStateNormal];
choosePhotoBarImage.hidden = NO;
choosePhotoText.hidden = NO;
addButton.enabled = YES;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
//because iPad uses a pop up - we don't want to dismiss modals here!
[imagePopupController dismissPopoverAnimated:YES];
}else{
[self dismissModalViewControllerAnimated:YES];
}
}
привет, спасибо за.. ваш ссылка. Пока это работает - без «Memory Warning». Я также подумал об этом, прежде чем я приземлился здесь, но то, что мешало мне это сделать, состояло в том, что я думал, что он может потреблять больше обработки сока/памяти при уменьшении изображения, но, похоже, это работает. Еще раз спасибо. – Unheilig