iOS:如何交换横向X和Y.

时间:2012-03-20 20:21:48

标签: ios ios5

我的应用只会是风景。我有宽度,高度,x和y变量的主要问题。有没有办法交换所有宽度,高度,x和y值,所以我不必反转我的应用程序中的所有坐标? (即。(x,y)必须变为(y,x)而且something.width必须是something.height。)

以下是我的问题的具体示例:

-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [[event allTouches] anyObject];
    CGPoint touchPoint = [touch locationInView:unitArea];

    if (CGRectContainsPoint(self.view.frame, touchPoint))
    {
        NSLog(@"released in area");
    }
}

这不适用于横向...它使用了错误的坐标,在某些地方,它会输出“在区域中释放”,但不会在视图所在的实际区域中输出。

unitArea bounds are <UIView: 0x6a52420; frame = (20 0; 300 480); transform = [0, -1, 1, 0, 0, 0]; autoresize = RM+BM; layer = <CALayer: 0x6a524a0>>

这显示为我的视角应该是(0 20; 480 300)。

编辑,更多信息:

这是我的(预制)定向方法:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
    } else {
        return YES;
    }
}

在项目摘要中,我的“支持的设备方向”仅设置为横向。

1 个答案:

答案 0 :(得分:3)

在iOS窗口中,坐标始终处于纵向模式。因此,rootViewController视图的框架将始终处于纵向模式。尝试在此视图中插入另一个视图。新视图的框架必须更改方向确认设备方向。