1
UIScrollView와 같은 많은 항목이 포함 된 UIView가 있습니다.UIView에서 하나의 요소 만 회전하는 방법
내 장치 (또는 iPhone 시뮬레이터)의 위치를 변경할 때 UIScrollView를 에만 회전하도록 지정할 수 있습니까?
감사합니다.
UIScrollView와 같은 많은 항목이 포함 된 UIView가 있습니다.UIView에서 하나의 요소 만 회전하는 방법
내 장치 (또는 iPhone 시뮬레이터)의 위치를 변경할 때 UIScrollView를 에만 회전하도록 지정할 수 있습니까?
감사합니다.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didRotate:)
name:UIDeviceOrientationDidChangeNotification
object:nil];
self.theView.transform = CGAffineTransformIdentity;
self.theView.transform = CGAffineTransformMakeRotation(degreesToRadians(-90));
UIView *localView = [mainView viewWithTag:tagOfScrollViewToRotate];
UIInterfaceOrientation deviceOrientation = [UIApplicationsharedApplication].statusBarOrientation;
float angle;
switch (deviceOrientation) {
case UIInterfaceOrientationPortraitUpsideDown:
{
angle = M_PI;
CGAffineTransform transform = CGAffineTransformMakeRotation(angle);
[localView setTransform:transform];
break;
}
case UIInterfaceOrientationLandscapeLeft:
{
angle = -M_PI/2;
CGAffineTransform transform = CGAffineTransformMakeRotation(angle);
[localView setTransform:transform];
localView.frame = CGRectMake(0, 0, 768, 1024);
break;
}
case UIInterfaceOrientationLandscapeRight:
{
angle = M_PI/2;
CGAffineTransform transform = CGAffineTransformMakeRotation(angle);
[localView setTransform:transform];
localView.frame = CGRectMake(0, 0, 768, 1024);
break;
}
default:
{
angle = 0;
break;
}
}
행운을 빌어 요, : D NO에서
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
을하고 그것을 잘 일하고있어. 회전 알림을 처리하는 방법을 잘 모르겠지만이 메서드를 사용하면 요소에 순환 효과를 유지할 수 없습니다. –
한 가지만 회전시키기를 원하므로 "시스템"에보기 컨트롤러가 회전하지 않도록 지시해야합니다. 그렇지 않으면 모든 요소가 회전하게됩니다. 즉 "아니오"가 반환됩니다. 그렇다면 장치가 언제 회전하는지 어떻게 알 수 있습니까? 그것이 통보를 처리하는 것이며, 회전 할시기를 알려줍니다. – Bogatyr
좋아, 이해했다. 그러나 언제 통보해야합니까? 장치가 회전하면 오른쪽으로. 그러나 장치의 회전을 어떻게 감지합니까? 감사. –