2010-07-20 8 views
2

drawInRect:withFont:lineBreakMode:alignment: 메서드를 사용하여 NSString 객체를 그릴 UIView의 하위 클래스가 있습니다.iPhone - UIView 방향 변경

불행히도 세로 방향에서 가로 방향으로 장치의 방향을 변경하면 텍스트가 올바르게 다시 그려지지 않고 크기가 커지고 의도가 왜곡됩니다.

이 문제를 어떻게 해결할 수 있습니까?

답변

4

이것은 코어 애니메이션이 전환을 애니메이션으로 보내는 방법의 일부입니다. 보기의 스냅 샷을 찍은 다음 새로운 위치로 확대/이동합니다.

여러 가지 방법으로 문제를 해결할 수 있습니다.

self.contentMode = UIViewContentModeRedraw; 

이것은 당신이 필요로하는 모든 수 있습니다 및 스냅 샷을 사용하는 대신 내용을 다시 그려야 코어 애니메이션을 말할 것이다 : 우선 당신이 시도 할 수 있습니다. 여전히 문제가있는 경우 텍스트 대신 스트레치가 가능한 "신축성있는"영역을 정의 해보십시오.

예를 들어, 텍스트가 전혀없는 세로 조각 슬라이스가있는 경우 해당 작은 섹션에 콘텐츠 스트레치를 정의하고 스트레칭 만 거기에서 발생하여 텍스트가 손상되지 않도록 할 수 있습니다.

CGFloat stretchStartX = 25.0f; 
CGFloat stretchEndX = 30.0f; 

/* Content stretch values are from 0.0-1.0, as a percentage of the view bounds */ 
self.contentStretch = CGRectMake(stretchStartX/self.bounds.size.width, 
           0.0f, 
           stretchEndX/self.bounds.size.width, 
           1.0f); 

이것은보기를 야기 만 X 사이에 뻗어 할 것은 값 25 및 30