-(UIView *)findView:(UIView *)aView withName:(NSString *)name{
Class cl = [aView class];
NSString *desc = [cl description];
if ([name isEqualToString:desc])
return aView;
for (UIView *view in aView.subviews) {
Class cll = [view class];
NSString *stringl = [cll description];
if ([stringl isEqualToString:name]) {
return view;
}
}
return nil;
}
-(void)addSomeElements:(UIViewController *)viewController{
UIView *PLCameraView = [self findView:viewController.view withName:@"PLCameraView"];
UIView *PLCropOverlay = [self findView:PLCameraView withName:@"PLCropOverlay"];
UIView *bottomBar = [self findView:PLCropOverlay withName:@"PLCropOverlayBottomBar"];
UIImageView *bottomBarImageForSave = [bottomBar.subviews objectAtIndex:0];
UIButton *retakeButton=[bottomBarImageForSave.subviews objectAtIndex:0];
[retakeButton setTitle:@"重拍" forState:UIControlStateNormal];
UIButton *useButton=[bottomBarImageForSave.subviews objectAtIndex:1];
[useButton setTitle:@"保存" forState:UIControlStateNormal];
UIImageView *bottomBarImageForCamera = [bottomBar.subviews objectAtIndex:1];
UIButton *cancelButton=[bottomBarImageForCamera.subviews objectAtIndex:1];
[cancelButton setTitle:@"取消" forState:UIControlStateNormal];
[[bottomBar.subviews objectAtIndex:1] addSubview:continuousButton];
}
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
[self addSomeElements:viewController];
}
//拍照
- (IBAction)toCameraPickingController:(id)sender
{
if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
NSLog(@"Error:没有照相设备");
}
else {
UIImagePickerController *cameraPicker = [[UIImagePickerController alloc] init];
cameraPicker.delegate = self;
cameraPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
if ([self respondsToSelector:@selector(presentViewController:animated:completion:)]) {
[self presentViewController:cameraPicker animated:YES completion:nil];
}
else {
[self presentModalViewController:cameraPicker animated:YES];
}
[cameraPicker release];
}
}
//选取本地图片
- (void)toPhotoPickingController
{
if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
NSLog(@"Error:无图片库");
}
else {
UIImagePickerController *photoPicker = [[UIImagePickerController alloc] init];
photoPicker.delegate = self;
photoPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
if ([self respondsToSelector:@selector(presentViewController:animated:completion:)]) {
[self presentViewController:photoPicker animated:YES completion:nil];
}
else {
[self presentModalViewController:photoPicker animated:YES];
}
[photoPicker release];
}
}
#pragma mark –
#pragma mark – UIImagePickerControllerDelegate Methods
//返回选取的图片
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
if ([self respondsToSelector:@selector(dismissViewControllerAnimated:completion:)]) {
[picker dismissViewControllerAnimated:YES completion:nil];
}
else {
[picker dismissModalViewControllerAnimated:YES];
}
UIImage *imagePicked = [info objectForKey:UIImagePickerControllerOriginalImage];
NSData *imageData=UIImageJPEGRepresentation(imagePicked,1.0);
int imageDatalength = [imageData length];
if(imageDatalength > 650000){
// commentimageview.image = [PublicClass scaleImage:imagePicked toScale:0.3];
}else{
// commentimageview.image = imagePicked;
}
}
#pragma mark –
#pragma mark UIImagePickerControllerDelegate Cancel Methods
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[picker dismissModalViewControllerAnimated:YES];
}