매우 이상한 문제가 있습니다. 나는 회전과 같이 viewDidAppear
에 수동으로 UIView의 수퍼 이동하려고 : 어떤 이유센터 속성을 설정하여 UIView의 수퍼 뷰 이동
- (void)viewWillAppear:(BOOL)animated
{
// ...
[self.view.superview setTransform:CGAffineTransformMakeRotation(M_PI/2)];
[self.view.superview setCenter:CGPointMake(100, 200)]; // (100, 200) is toy value
// ...
}
는, 회전이 올바르게 적용되지만 슈퍼 뷰의 중심 (즉, 위치)이 전혀 이동되지 않습니다. 나는 또한 회전 + 번역 (또는 단지 번역만으로)의 조합 인 변형을 CGAffineTransform
으로 설정하려고 시도했으며, 이는 superview도 움직이지 않을 것이다.
차이가 있다면 self.view.superview
이 가장 위에 있습니다 (즉, self.view.superview.superview
은 nil
).
나는 여기 아주 간단한 것을 놓치고 있습니까?
편집 : nielsbot의 의견은 viewDidLoad에 넣는 것이 정확했지만 그때까지보기가 이미 나타나서 새 위치로 스냅하는 깜박임이 있습니다. 이 문제를 해결할 방법이 있습니까?
'viewDidAppear'에서 시도하십시오 - 코드는'viewWillAppear'라고 말합니다. *가 * 나타나고 변경 사항을 취소 한 후 일부 레이아웃 코드가 실행될 수 있습니다. – nielsbot
먼저 "회전이 제대로 적용되었지만 수퍼 뷰가 전혀 움직이지 않았습니다"라고 말하고 싶다고 분명히 말하십시오. – Nayan
@nielsbot 그 것이 효과가 있었지만 처음에는보기를 보여주기 때문에 깜박임이 있습니다. 나중에보기가 움직이기 때문에 깜박 거립니다. 그걸 피할 수있는 방법이 있습니까? – kevlar