Если вы запускаете этот код, подключенный к XCode (т.е. он работает в отладчике), то вы получите паузу, когда он попытается выделить UIImagePickerController.Это очень медленно в отладчике.Попробуйте запустить не подключенный, и он должен быть быстрее. Также старайтесь не запускать его, если он вам не нужен.
Повторить код может показаться плохим, но вы, вероятно, можете помочь, набрав:
imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setDelegate:self];
внутри оператора if.
Надеюсь, это поможет:)
Попробуйте это:
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
if (buttonIndex == 0) {
imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setDelegate:self];
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
[self.navigationController presentModalViewController:imagePicker animated:YES];
} else if (buttonIndex == 1) {
imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setDelegate:self];
[imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
[self.navigationController presentModalViewController:imagePicker animated:YES];
} else {
// Cancel button code here
}
}
Это делает это немного по-другому
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
if (buttonIndex != actionSheet.cancelButtonIndex) {
imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setDelegate:self];
if (buttonIndex == 0) {
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
[self.navigationController presentModalViewController:imagePicker animated:YES];
} else if (buttonIndex == 1) {
[imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
[self.navigationController presentModalViewController:imagePicker animated:YES];
}
} else {
// Cancel button code goes here
}
}
Итак, сначала мы проверяем, что это не кнопка отмены, если мы не создаем UIImagePickerController, а затем используем ее в двух случаях, когда это требуется.Если это кнопка отмены, то она просто ничего не делает.
Это должно выглядеть немного счастливее.