2010-08-09 4 views
2

QuartzCore를 사용하여 반투명 텍스트/그라디언트/이미지 UITableViewCell 합성물을 렌더링하려고합니다. 고맙게도 Opacity는 시각적으로 뷰를 만든 다음 코코아 터치에 들어가기위한 소스 코드를 내뱉습니다. 문제는 불투명도가 코드가 iOS 4에서 실행되고 있다고 가정합니다. iPad에서 Quartz보기를 그리려면 문제가됩니다.CGPathGetPathBoundingBox() iPad (iOS 3.2)의 대안

나를 위해, 기분을 상하게하는 방법은 CGPathGetPathBoundingBox ...이 대안 (아마도 간단한) 방법에 대한 적절한 대안이나 해결 방법을 가르쳐 주시겠습니까? 의 좌표를

transform = CGAffineTransformMakeRotation(1.571f); 
tempPath = CGPathCreateMutable(); 
CGPathAddPath(tempPath, &transform, path); 
pathBounds = CGPathGetPathBoundingBox(tempPath); 
point = pathBounds.origin; 
point2 = CGPointMake(CGRectGetMaxX(pathBounds), CGRectGetMinY(pathBounds)); 
transform = CGAffineTransformInvert(transform); 

답변

3

대안이 iterate on the points of the path로하고 최상의, 오른쪽, 맨 왼쪽을주의하고, 최하단 : 당신이 (웃기려는 의도 없음) 어떤 맥락을 가지고 신경 경우

, 여기 요 앵커는 자신을 가리킨 다음 그 숫자에서 원점과 크기를 계산합니다.

함수에서 이것을 랩핑하고 MyPathGetPathBoundingBox과 같은 이름을 지정하고 iOS 3.x에 대한 지원을 중단 할 때까지 사용해야합니다. 그렇게하면 가능한 한 CGPathGetPathBoundingBox으로 전환 할 수 있습니다.

+0

설명에서 비슷한 다른 기능을 볼 수 있지만 기능면에서 동일한 지 확실하지 않습니다 ... CGPathGetBoundingBox ...이 부분과 CGPathGetPathBoundingBox의 차이점을 알 수 없습니다. –

+5

Greg Combs : 차이점은 CGPathGetBoundingBox는 제어점을 고려하므로 곡선 세그먼트의 경우 곡선으로 덮힌 전체 영역이 경계 상자에 기여합니다. 'CGPathGetPathBoundingBox'는 앵커 포인트만을 고려하므로 곡선은 직선처럼 효과적으로 측정됩니다. 병리학적인 사례로서, 두 개의 커브 토 세그먼트로 구성된 원은 (두 개의 앵커 포인트 사이에 직선 만 있기 때문에) 영역이 전혀없는 반면 폴리곤 (lineto 만 제외)은 영역을 갖습니다. –

+2

Greg Combs : 또는 시각적으로 : http://i.imgur.com/cF7SS.png –

관련 문제