Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UIViewController视图框架的正确初始化_Iphone - Fatal编程技术网

Iphone UIViewController视图框架的正确初始化

Iphone UIViewController视图框架的正确初始化,iphone,Iphone,在我的iPhone项目中,我用代码创建GUI。我脑海中闪过的一个问题是,这样写对了吗: UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 460.0f)]; self.view = myView; [myView release]; 这在iPhone4上可以用,对吗?因为我写这篇文章时没有设置物理像素,在iPhone4上它会自动缩放到640和920?还是我错了 我还想知道是否有一种方法可以

在我的iPhone项目中,我用代码创建GUI。我脑海中闪过的一个问题是,这样写对了吗:

UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 460.0f)];
self.view = myView;
[myView release];
这在iPhone4上可以用,对吗?因为我写这篇文章时没有设置物理像素,在iPhone4上它会自动缩放到640和920?还是我错了

我还想知道是否有一种方法可以告诉主要的“观点”,即“填满我所属的容器”?因为这个代码现在无法在iPad上正确显示


帮助更多:)

在iPhone上,您为
CGRect
中的x、y、宽度和高度位置提供的值位于而非像素。点是相对于比例因子的。也就是说,给定已知的点宽度和高度,您可以使用比例因子通过将宽度和高度乘以比例因子来确定屏幕上有多少像素。然而,这对你来说并不重要。在iOS中,当涉及到帧和边界时,您总是处理点,而不是像素。

在iOS中,视图坐标系是以点而不是像素定义的。文档中说,如果使用UIKit,iPhone和iPod touch的分辨率为320x480点,iPad的分辨率为768x1024点。 如果使用OpenGL,则可以访问以像素为单位的真实分辨率,但如果仅使用UIKit,则只需要使用点

要让视图“填充”superview,可以执行以下操作:

initWithFrame:self.view.superview.frame并设置自动调整大小掩码,以确保视图始终填充superview;)

希望这有帮助,
Moszi

你可以在模拟器中测试iPhone4。我很确定您需要设置view.contentScaleFactor=[UIScreen mainScreen].scaleFactor或类似的设置。@Justin Meiners,这是错误的。看看我的答案。+1看看他们是如何处理不可避免的下一个显示尺寸的,这会很有趣。(虽然我很想弄错,但短期内看不到他们能将iPad的显示分辨率整齐地提高一倍。):-)谢谢,但是,有可能将“主视图”添加到viewcontroller中,并使其填满剩下的任何空间吗?因为我现在的代码不会填满整个iPad屏幕,对吗?