我需要让用户从照片库中选择一张照片,并且能够在使用叠加图像时调整图像大小和裁剪图像。将UIImagePickerControllerSourceTypeCamera
与cameraOverlayView
一起使用很不错,但UIImagePickerControllerSourceTypeSavedPhotosAlbum
不支持该属性。
奇怪的是,当我将叠加视图添加为alpha设置为一半的子视图时,叠加层会出现在照片选择屏幕上,但这不会随着Apple的批准过程而出现。
-(void)choosePhotoDialog:(id)sender
{
UIBarButtonItem * barThing = (UIBarButtonItem*)sender;
OverlayView * overlay = [[OverlayView alloc] initWithFrame: CGRectMake(0, 0, SCREEN_WIDTH_IPHONE, SCREEN_HEIGTH_IPHONE)
andPhotoOverlay: [dict objectForKey:@"imageUrl"]];
[overlay setUserInteractionEnabled: NO];
UIImagePickerController * picker = [[UIImagePickerController alloc] init];
switch (barThing.tag)
{
case 0: [picker setSourceType: UIImagePickerControllerSourceTypeCamera];
[picker setShowsCameraControls: YES];
[picker setCameraOverlayView: overlay];
break;
case 1: [picker setSourceType: UIImagePickerControllerSourceTypeSavedPhotosAlbum];
[picker.view addSubview: overlay];
[overlay setAlpha: 0.5f];
break;
}
[picker setDelegate: self];
[picker setAllowsEditing: YES];
[picker setNavigationBarHidden: YES];
[picker setWantsFullScreenLayout: YES];
[self presentModalViewController:picker animated:YES];
[picker release];
}
允许用户使用UIImagePickerControllerSourceTypeSavedPhotosAlbum
使用叠加从PhotoLibrary中选择照片的正确方法是什么?
基本上,我需要编写3个单独的类并将它们组合起来创建我自己的自定义照片编辑视图,这也可以保存缩放/缩放/旋转编辑。
答案 0 :(得分:1)
我最后写了几个课程:
OverlayView
类是UIView
,只是检索具有透明度的.png图像,并且是最底层的。
InteractiveWallpaper
类,它是UIImageView
并处理所有touch
事件,包括转化事件。
最后, EditingView
类是UIViewController
。这会添加前面提到的2个视图,并保存用户编辑的照片。
这也允许我自定义视图的行为。当用户触摸导入的照片时,最顶部的照片会降低其alpha值,从而允许用户在导入的照片更加明显时仍能看到覆盖图。