在我的iPhone项目中,我使用代码创建GUI。我想到的一个问题是,写这个是否正确:
UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 460.0f)];
self.view = myView;
[myView release];
这适用于iPhone 4吗?因为我在写这个时没有设置物理像素,而在iPhone 4上它会自动缩放到640和920?或者我错了。
我也想知道是否有办法告诉主要的“观点”,“填充我所属的容器”?因为这个代码现在不能在iPad上正确显示?
帮助很多appriciated:)
答案 0 :(得分:2)
在iPhone上,您为CGRect
中的x,y和宽度和高度位置提供的值是点而不是像素。点数相对于比例因子。也就是说,给定已知的点宽度和高度,您可以使用比例因子,通过将宽度和高度乘以比例因子来确定屏幕上有多少像素。但是,这对你来说无关紧要。在iOS中,当涉及到帧和边界时,你总是处理点而不是像素。
答案 1 :(得分:1)
在iOS中,视图坐标系以点而非像素定义。文档说,如果您使用UIKit,那么iPhone和iPod touch的分辨率为320x480 点,iPad的分辨率为768x1024点。 如果您使用OpenGL,那么您可以访问像素的真实分辨率,但如果您只使用UIKit,那么您只需要使用点。
要让您的视图“填充”超级视图,您可以执行以下操作:
initWithFrame:self.view.superview.frame并设置自动调整遮罩以确保视图始终填充超级视图;)
希望这有帮助, Moszi