다음은 UITextView에서 모서리를 그리는 코드입니다. .H 파일에서UIBezierPath containsPoint는 한 번만 작동합니다.
:
@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];
}
제가 는 불리언 값을 제공 처음 경로 탭하면 예. 하지만 나중에 히트를 치기 위해 어떤 경로에도 가치를 부여하지 않습니다. 아무도 저에게 왜 그렇게 일어나는지 도울 수 있습니까?
ARC를 사용하고 있습니까? 'upperLeft'와'upperRight'은 어떻게 선언/정의되어 있습니까? –
예 ARC..UIBezierPath * upperLeft;를 사용하고 있습니다. UIBezierPath * upperRight; 이것은 .h 파일에서 경로를 선언하는 방법입니다. [UIBezierPath bezierPathWithArcCenter : CGPointMake (xCorner + 폭 - 마진 yCorner + 마진) 반경 : 5.5 startAngle로부터 0 endAngle : DEGREES_TO_RADIANS (360)를 시계 방향 : YES]; 이것은 경로의 정의입니다. –