将视图添加到 UIViewController

Add view onto UIViewController

我做了一个UIImagePicker

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.allowsEditing = YES;
    picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    picker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
    picker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil];

我想加一个半圆,所以我这样做了,

CGContextRef gc = UIGraphicsGetCurrentContext();
    CGContextBeginPath(gc);
    CGContextAddArc(gc, 100, 100, 50, -M_PI_2, M_PI_2, 1);
    CGContextClosePath(gc); // could be omitted
    CGContextSetFillColorWithColor(gc, [UIColor cyanColor].CGColor);
    CGContextFillPath(gc);
    UIView *someView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 400, 400)];
    [someView.layer renderInContext:gc];
    [picker setCameraOverlayView:someView];

但是当我像这样显示选择器时

[self presentViewController:picker animated:YES completion:NULL];

我没看到半圆?为什么会这样?

谢谢

嘿,你走的路不对。

执行下面的步骤,它会帮助你...

看下面的答案..

CircleView.h

#import <UIKit/UIKit.h>

@interface CircleView : UIView

@end

CircleView.m

#import "CircleView.h"

@implementation CircleView

- (void)drawRect:(CGRect)rect 
  {
    CGContextRef gc = UIGraphicsGetCurrentContext();
    CGContextBeginPath(gc);
    CGContextAddArc(gc, 100, 100, 50, -M_PI_2, M_PI_2, 1);
    CGContextClosePath(gc); // could be omitted
    CGContextSetFillColorWithColor(gc, [UIColor cyanColor].CGColor);
    CGContextFillPath(gc);
 }
 @end

在您的图像选择器中添加半圆的实现在这里

 UIImagePickerController *controller = [[UIImagePickerController   alloc]init];
 controller.delegate=self;
 controller.sourceType = UIImagePickerControllerSourceTypeCamera;
 [self presentViewController:controller animated:YES completion:^{
            CircleView *someView = [[CircleView alloc] initWithFrame:CGRectMake(0, 0, 400, 400)];
            [someView setBackgroundColor:[UIColor colorWithWhite:0.5 alpha:0.5]];
            [controller setCameraOverlayView:someView];
        }];