0

我可以通过将以下内容放入 UIView 并将其连接到情节提要视图来绘制一条线。

- (void)drawRect:(CGRect)rect {
CGContextRef  context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 5.0);
CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
CGFloat components[] = {0.0, 0.0, 1.0, 1.0};
CGColorRef color = CGColorCreate(colorspace, components);
CGContextSetStrokeColorWithColor(context, color);
CGContextMoveToPoint(context, 0, 0);
CGContextAddLineToPoint(context, 10, 50);
CGContextStrokePath(context);
CGColorSpaceRelease(colorspace);
CGColorRelease(color);

}

但是,我想做的是在按下按钮时画一条线。为此,我假设我需要将一些代码写入 IBAction。我的问题是我不能简单地将上面的代码放入 IBAction 中,因为它给了我一个错误。

- (IBAction)draw:(id)sender{
 //Place code here

}

我的问题是,每次按下按钮时如何画一条线?

如何连接类似的代码以绘制按下按钮时将触发的不同线条

4

2 回答 2

2

要在 UIView 上绘图,您必须将 UIView 子类化

在.h

   @MyCustomView : UIView {
    }

    @end

@implementation MyCustomView

- (void) drawRect: (CGRect) rect
{
        CGContextRef  context = UIGraphicsGetCurrentContext();
        CGContextSetLineWidth(context, 5.0);
        CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
        CGFloat components[] = {0.0, 0.0, 1.0, 1.0};
        CGColorRef color = CGColorCreate(colorspace, components);
        CGContextSetStrokeColorWithColor(context, color);
        CGContextMoveToPoint(context, 0, 0);
        CGContextAddLineToPoint(context, 10, 50);
        CGContextStrokePath(context);
        CGColorSpaceRelease(colorspace);
        CGColorRelease(color);
    }

在您的视图控制器中

-(void)methodCallCustomView{

       } 

- (IBAction)draw:(id)sender{
   [self methodCallCustomView];
    }
于 2012-06-01T20:01:08.767 回答
1

因此,您希望在按下按钮时调用 drawRect: 方法吗?如果是这样,将消息 setNeedsDisplay 发送到具有 drawRect: 代码的视图。

于 2012-06-01T16:28:17.997 回答