以下是我在UITextView上绘制角落的代码。
在.h文件中:
@property(nonatomic,strong) UIBezierPath * upperLeft;
@property(nonatomic,strong) UIBezierPath * upperRight;
- (void)drawRect:(CGRect)rect
{
upperLeft = [UIBezierPath bezierPathWithArcCenter:CGPointMake(xCorner + margin, yCorner + margin)
radius:5.5
startAngle:0
endAngle:DEGREES_TO_RADIANS(360)
clockwise:YES];
[[UIColor blackColor]setFill];
[upperLeft fill];
[upperLeft closePath];
upperRight = [UIBezierPath bezierPathWithArcCenter:CGPointMake(xCorner+ widths - margin, yCorner + margin)
radius:5.5
startAngle:0
endAngle:DEGREES_TO_RADIANS(360)
clockwise:YES];
[[UIColor blackColor]setFill];
[upperRight fill];
[upperRight closePath];
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
touchStart = [[touches anyObject] locationInView:self];
isResizingUL = [upperLeft containsPoint:touchStart];
isResizingUR= [upperRight containsPoint:touchStart];
}
当我第一次点击路径时,它给出了Bool值为yes。但是对于后来的命中,它给任何路径都赋予NO值。即使在路径上击中。任何人都可以帮助我为什么会这样。
答案 0 :(得分:0)
看起来你正试图存储upperLeft和lowerRight,但是你没有使用该属性,因此ARC不会通过保留值来帮助你。因此,当您超出范围时,upperLeft和lowerRight将变为未定义。我有点惊讶它没有崩溃。
如果您使用self.upperLeft=...
和self.lowerRight=...
,您应该会成功。