当我点击屏幕(随机而非点击位置)时,如何制作圆圈! PS:点击手势应该在View Controller File中不是“我自己的自定义视图文件”
答案 0 :(得分:0)
首先在视图控制器中定义点按手势。
UITapGestureRecognizer *letterTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapgesture:)];
[self.view addsubview:letterTapRecognizer];
在此点按手势方法上,请拨打circleview
。
- (void)tapgesture:(UITapGestureRecognizer*)sender
{
circleview *temp = [[circleview alloc] initWithFrame:CGRectMake(0, 0, 60, 40)];
[self.view addSubview:temp];
}
实现 - (void)drawRect:circleview.m中的(CGRect)rect方法
- (void)drawRect:(CGRect)rect
{
CGContextRef contextRef = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(contextRef, 2.0);
CGContextSetRGBFillColor(contextRef, 0, 0, 1.0, 1.0);
CGContextSetRGBStrokeColor(contextRef, 0, 0, 1.0, 1.0);
CGRect circlePoint = (CGRectMake(touchPos.x, touchPos.y, 10.0, 10.0));
CGContextFillEllipseInRect(contextRef, circlePoint);
}
答案 1 :(得分:0)
在正常情况下,UIViewController
中的图片不会发生,而是UIView
如果您坚持在视图控制器中进行绘图,那么唯一的方法是创建CALayer
,将其设置为视图控制器,并且你在drawLayer:inContext
中的渲染:
@property (nonatomic, strong) CALayer* layer;
-(void)viewDidLoad {
...
layer = [CALayer new];
layer.frame = self.view.bounds;
layer.delegate = self;
[layer setNeedsDisplay];
[self.view.layer addSubLayer:layer];
}
-(void)drawLayer:(CALayer*)layer inContext:(CGContextRef)context {
... do your drawing here...
}
同样,更常规的方法是将UIView子类化并处理所有绘图。