这里不多说。就是这样,我的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
函数,但不会进行笔画。
如果需要更多信息。告诉我,我会得到它!
答案 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];
}