使用drawRect绘制到我自己的UIView

时间:2017-12-04 01:07:48

标签: ios objective-c drawrect

这里不多说。就是这样,我的UIView中没有添加任何STROKE。

#import "DrawingLayerView.h"

@implementation DrawingLayerView

UIBezierPath *newPath;

- (void)startTouch:(CGPoint)point;
{
    [newPath moveToPoint:point];
}

- (void)drawRect:(CGRect)rect {
    [[UIColor redColor] setStroke];
    [newPath stroke];
}

- (void)drawShape:(CGPoint)point
{
    [newPath addLineToPoint: point]; // (4)
    [self setNeedsDisplay];
}

- (void)endTouch:(CGPoint)point {
    [newPath removeAllPoints];
}

@end

DrawingLayerView.h是我UIView的自定义类。

肯定会调用drawRect函数,但不会进行笔画。

如果需要更多信息。告诉我,我会得到它!

2 个答案:

答案 0 :(得分:1)

代码工作所需的至少一件事是newPath的初始化。在开始触摸时:self.newPath = [UIBezierPath bezierPath];(使其成为使用self.newPath的属性,否则您将隐式声明它为静态)。

答案 1 :(得分:0)

您可能想要显示您拨打drawShape的方式/位置。这里没有任何东西可以称之为。此外,假设您正在这样做,您似乎没有实例化UIBezierPath,例如:

- (void)startTouch:(CGPoint)point         // note, no semicolon
{
    newPath = [UIBezierPath bezierPath];  // note, create a `UIBezierPath` before you try to `moveToPoint`, or later, `addLineToPoint`
    [newPath moveToPoint:point];
}