以前,写过一篇:自定义UIImagePickerController的拍照页面,这篇文章的实现方式与此不同,在开始之前,先来看一下下面这张图:
上图对接下来的代码理解会很有帮助,红色的高亮部分是从屏幕上看到的照片的预览图,除了这个之外,他上面的view都可以去掉。
要想编辑这些View,需要先找到他们,这里给出了这个方法:
- (UIView *)findView:(UIView *)aView withName:(NSString *)name { Class cl = [aView class]; NSString *desc = [cl description]; if ([name isEqualToString:desc]) return aView; for (NSUInteger i = 0; i < [aView.subviews count]; i++) { UIView *subView = [aView.subviews objectAtIndex:i]; subView = [self findView:subView withName:name]; if (subView) return subView; } return nil; }
下面的这段代码给出了比较详细的使用示例:
- (void)addSomeElements:(UIViewController *)viewController { //Add the motion view here, PLCameraView and picker.view are both OK UIView *PLCameraView=[self findView:viewController.view withName:@"PLCameraView"]; [PLCameraView addSubview:touchView];//[viewController.view addSubview:self.touchView];//You can also try this one. //Add button for Timer capture [PLCameraView addSubview:timerButton]; [PLCameraView addSubview:continuousButton]; [PLCameraView insertSubview:bottomBarImageView atIndex:1]; //Used to hide the transiton, last added view will be the topest layer [PLCameraView addSubview:myTransitionView]; //Add label to cropOverlay UIView *cropOverlay=[self findView:PLCameraView withName:@"PLCropOverlay"]; [cropOverlay addSubview:lblWatermark]; //Get Bottom Bar UIView *bottomBar=[self findView:PLCameraView withName:@"PLCropOverlayBottomBar"]; //Get ImageView For Save UIImageView *bottomBarImageForSave = [bottomBar.subviews objectAtIndex:0]; //Get Button 0 UIButton *retakeButton=[bottomBarImageForSave.subviews objectAtIndex:0]; [retakeButton setTitle:@"重拍" forState:UIControlStateNormal]; //Get Button 1 UIButton *useButton=[bottomBarImageForSave.subviews objectAtIndex:1]; [useButton setTitle:@"保存" forState:UIControlStateNormal]; //Get ImageView For Camera UIImageView *bottomBarImageForCamera = [bottomBar.subviews objectAtIndex:1]; //Set Bottom Bar Image UIImage *image=[[UIImage alloc] initWithContentsOfFile:[[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"BottomBar.png"]]; bottomBarImageForCamera.image=image; [image release]; //Get Button 0(The Capture Button) UIButton *cameraButton=[bottomBarImageForCamera.subviews objectAtIndex:0]; [cameraButton addTarget:self action:@selector(hideTouchView) forControlEvents:UIControlEventTouchUpInside]; //Get Button 1 UIButton *cancelButton=[bottomBarImageForCamera.subviews objectAtIndex:1]; [cancelButton setTitle:@"取消" forState:UIControlStateNormal]; [cancelButton addTarget:self action:@selector(hideTouchView) forControlEvents:UIControlEventTouchUpInside]; }
相关推荐
本篇文章将深入探讨如何自定义`UIImagePickerController`,特别是针对拍照页面的定制。 首先,我们需要理解`UIImagePickerController`的基本用法。创建一个`UIImagePickerController`实例,然后设置其`sourceType`...
二、自定义拍照界面 1. 使用AVFoundation框架:为了自定义相机界面,我们需要使用`AVFoundation`框架。首先,创建一个`AVCaptureSession`实例,它是所有捕捉输入和输出的核心。 2. 添加输入和输出:设置相机输入...
首先,我们要创建一个自定义的拍照页面。这通常通过集成`UIImagePickerController`类来实现,它是苹果提供的用于拍摄照片或录制视频的UI组件。为了自定义这个页面,我们需要设置`UIImagePickerController`的代理,并...
本示例项目"iOS 系统相册调取及自定义相册"旨在帮助开发者了解如何实现这一功能,同时提供对相册界面和相机页面进行自定义的可能性。通过深入理解以下知识点,你将能够构建自己的照片选择器并按照应用程序的视觉风格...
你可以设置相机模式(拍照或录像)、是否显示相册选项,以及处理捕获的图像或视频的数据回调。例如,你可以通过以下代码打开相机: ```swift let imagePickerController = UIImagePickerController() ...
总之,实现“ios-模仿微信发朋友圈信息时,从相册或拍照选择图片,支持图片浏览和删除”的功能,需要掌握多媒体选择、图片处理、手势识别、自定义视图和用户交互等多方面的iOS开发知识。通过以上步骤,你可以构建出...
而在iOS中,可以使用UIImagePickerController类来实现同样的功能,设置其sourceType为UIImagePickerControllerSourceTypeCamera,然后展示相机界面让用户拍照。 其次,模仿微信的UI特效主要涉及以下几个方面: 1. ...
选择图片、拍照和视频上传的功能,这通常涉及到UIImagePickerController的使用。UIImagePickerController是苹果提供的一个控制器,用于让用户从相册中选择图片或视频,或者直接通过摄像头拍摄。开发者需要处理相应的...
3. **自定义相机界面**:为了在拍照时实时预览并应用滤镜,开发者可能创建了一个自定义的相机界面。这通常涉及到捕获摄像头的实时视频流,将其转换为CIImage对象,然后应用滤镜,最后显示在屏幕上。这个过程需要对...
在实现过程中,通常会调用系统提供的API,如Android的`Intent.ACTION_PICK`和`CameraSourcePreview`,或是iOS的`UIImagePickerController`,来打开相册或启动相机。 支付功能(如支付宝支付/微信支付)的集成则更...