저는 90도 회전시 높이와 너비가 바뀌는 UIView를 사용합니다. 이제 높이 또는 너비를 늘리려고하면 비정상적인 모양이 나타납니다. 회전 된 UIView의 높이를 변경하려면 어떻게해야합니까?프레임을 변경하지 않고 UIView를 회전하십시오.
답변
Apple 설명서에는보기의 transform
이 ID 변환이 아닐 때 frame
보기 속성이 정의되지 않는다고 나와 있습니다.
보기를 회전하면보기의 변형이 변경됩니다.
이제 프레임이 무효화되는 이유는 무엇입니까? Apple의 설명서는 사실 약간 부정확합니다. 변형 된보기에서는 frame 속성이 완전히 의미가 없습니다. 대신 뷰의 경계 사각형, 즉 변환 된 뷰가 들어갈 수있는 가장 작은 직립 사각형을 반영합니다.
frame
은 실제로 파생 된 속성이기 때문입니다. 변환 된 뷰의 "실제 높이", 즉 변환이 적용되기 전의 자체 좌표계의 높이를 변경하려면 해당 속성이 bounds
입니다.
그래서, 간단히 말해서 :
CGRect bounds = myView.bounds;
bounds.size.height = newHeight;
myView.bounds = bounds;
코드에이 줄을 입력하면 CGAffineTransformMakeRotation을 어디에 추가해야합니까? 부품? 그 전후에? –
야, 너는 내 하루를 보냈다. 감사합니다. 친구. –
고맙습니다. 다행스럽게 도울 수있어! 기록을 위해 (나는 지금 당장 자신을 알아 냈을 것입니다) : 경계를 바꾸고 있다면, 당신이 전후로 변환을 변경하고 있는지 여부는 중요하지 않습니다. 프레임을 변경하려면'CGAffineTransformIsIdentity (myView.transform)'이 YES (즉, 변환을 변경하기 전) 인 동안에 만 이것을 수행해야합니다. 프레임 대 경계에 대한 자세한 정보는이 블로그 게시물 (나이 아닌)을 확인하십시오. http://ashfurrow.com/blog/you-probably-dont-understand-frames-and-bounds – fzwo
를 사용하여 다음과 같은 방법을 ...
- (void) runSpinAnimationOnView:(UIView*)view duration:(CGFloat)duration rotations:(CGFloat)rotations repeat:(float)repeat;
{
CABasicAnimation* rotationAnimation;
rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 /* full rotation*/ * rotations * duration ];
rotationAnimation.duration = duration;
rotationAnimation.cumulative = YES;
rotationAnimation.repeatCount = repeat;
[view.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
}
- 1. CGAffineTransformMakeRotation을 사용하여 UIView를 회전하십시오.
- 2. 크기를 변경하지 않고 이미지보기를 회전하십시오. Android
- 3. Perspective를 제공하기 위해 UIView를 회전하십시오.
- 4. 화면의 오른쪽 주위에 UIView를 회전하십시오.
- 5. 상단 막대를 변경하지 않고 UIView를 전환하십시오.
- 6. 이미 회전 중 애니메이션이 적용된 UIView를 회전하십시오.
- 7. 텍스트를 자르지 않고 TextView를 회전하십시오.
- 8. QML로 이동하지 않고 회선을 회전하십시오.
- 9. 픽셀을 잃지 않고 BufferedImage를 회전하십시오.
- 10. 스윙에서 프레임을 변경하지 않고 데이터베이스의 데이터를 동적으로 변경합니다.
- 11. URL을 변경하지 않고 새 프레임을 기존 gif에 추가하십시오.
- 12. 프레임을 변경하지 않고 UILablel의 텍스트를 가운데 및 세로로 설정하십시오.
- 13. UITextField는 리플렉션시 프레임을 변경하지 않습니다.
- 14. 표시하지 않고 UIView를 건너 뛰기
- 15. UIView를 제거하지 않고 UIAnimation 취소
- 16. 크기 나 형식을 바꾸지 않고 이미지를 회전하십시오.
- 17. 원점을 잃지 않고 모양 java2d를 회전하십시오.
- 18. 방향을 바꾸지 않고 안드로이드 디스플레이를 회전하십시오.
- 19. 문자를 회전시키지 않고 TextView 단어를 회전하십시오.
- 20. 변경하지 않고 URL 디코딩 +
- 21. 변경하지 않고 클로즈드 헤드
- 22. 리디렉션 URL을 변경하지 않고
- 23. 변경하지 않고 선택하십시오.
- 24. UIInterpolatingMotionEffect가 UIView의 프레임을 변경하지 않는 이유는 무엇입니까?
- 25. 처음 UIView를 표시하지 않고 UIView를 UIImage로 변환 하시겠습니까?
- 26. 계층 적 위치를 변경하지 않고 IB에서 항목 이동
- 27. 임의의 점을 중심으로 QPixmap을 회전하십시오.
- 28. 백그라운드를 변경하지 않고 작업을 시작합니다.
- 29. URL을 변경하지 않고 리디렉션 하시겠습니까?
- 30. .htaccess : URL을 변경하지 않고 리디렉션
난 그냥 방법은 화면에 나타나는 방식의 각도를 변경해야합니다. –
'view.transform = CGAffineTransformMakeRotation (M_PI/2); ' –
90 도가 그 예입니다. 나는 수동으로보기를 회전시키고있다. 높이와 너비가 바뀌고 있습니다. 화면에서보기 각도를 변경해야합니다. –