Objective c 是否可以使我的视图中心等于(0,0)?

Objective c 是否可以使我的视图中心等于(0,0)?,objective-c,ios,cocoa-touch,Objective C,Ios,Cocoa Touch,我正在尝试开发一个应用程序,它使用一些简单的trig函数。不幸的是,由于坐标系在iPhone上的设置方式,在许多其他设备中,我的计算遇到了麻烦——都是围绕偏移量进行的 例如,我正在创建的应用程序有一个围绕我的中心旋转的小点。不幸的是,由于中心不是(0,0),我不得不在到达中心时进行任何额外的检查以翻转坐标(+180度),并向trig函数添加额外的计算以进行调整——只是为了说明原点系统的工作方式 我希望设备的中心,在本例中,(160240)是我的应用程序的中心原点。e、 g.(160240)=(0

我正在尝试开发一个应用程序,它使用一些简单的trig函数。不幸的是,由于坐标系在iPhone上的设置方式,在许多其他设备中,我的计算遇到了麻烦——都是围绕偏移量进行的

例如,我正在创建的应用程序有一个围绕我的中心旋转的小点。不幸的是,由于中心不是(0,0),我不得不在到达中心时进行任何额外的检查以翻转坐标(+180度),并向trig函数添加额外的计算以进行调整——只是为了说明原点系统的工作方式

我希望设备的中心,在本例中,
(160240)
是我的应用程序的中心原点。e、 g.
(160240)
=
(0,0)
这意味着,如果我将任何子视图放置在主视图中心的左侧,该视图的X坐标将为负X。否则,我将不得不进行更多的计算以调整偏移量——到目前为止,这已被证明是一个令人头痛的问题

我已经使用编辑器将视图的原点设置为中心。但是,我在视图上放置的任何对象仍保留顶部、左侧的0,0坐标结构

这可能吗?我假设我可以将视图的原点设置为中心,它必须做一些有用的事情

签出UIScreen“边界”属性:

使用这些计算中心屏幕的转换应该相对简单

比如:

myView.center = CGPointMake([[UIScreen mainScreen] bounds].size.width/2, [[UIScreen mainScreen] bounds].size.height/2);
取自井

签出UIScreen“边界”属性:

使用这些计算中心屏幕的转换应该相对简单

比如:

myView.center = CGPointMake([[UIScreen mainScreen] bounds].size.width/2, [[UIScreen mainScreen] bounds].size.height/2);

取自您可以使用视图的
层的
sublayerttransform
属性

myView.layer.sublayerTransform = CATransform3DMakeTranslation(160.0, 240.0, 0.0);

您可以使用视图的
层的
sublayerttransform
属性

myView.layer.sublayerTransform = CATransform3DMakeTranslation(160.0, 240.0, 0.0);

所以问题是,如果我使用子层转换,主视图上的任何图像视图会重新调整到新的坐标,同时保留它们的位置吗?因此,从本质上说,如果我有一个0,0的图像,它会变成(-160,-240)吗?UIView也有它自己的变换属性,所以你不必深入到层中。@George是的,任何子视图在设置
子层变换后都会调整它们的位置。这不一样<代码>变换
变换图层/视图本身,而
子图层变换
变换其子图层/视图。澄清一下:如果在(0,0)处有一个图像,然后调整子图层变换,坐标仍然是(0,0),但它会出现在(160240)。因此,如果我使用子图层变换,主视图上已有的图像视图是否会重新调整到新坐标,同时保留其位置?因此,从本质上说,如果我有一个0,0的图像,它会变成(-160,-240)吗?UIView也有它自己的变换属性,所以你不必深入到层中。@George是的,任何子视图在设置
子层变换后都会调整它们的位置。这不一样<代码>变换
变换图层/视图本身,而
子图层变换
变换其子图层/视图。澄清一下:如果您在(0,0)处有一个图像,然后调整子图层变换,坐标仍然是(0,0),但它会出现在(160240)。