代码之家  ›  专栏  ›  技术社区  ›  Martin

iPad定位/帧大小问题

  •  2
  • Martin  · 技术社区  · 15 年前

    在“视图加载”中,我试图确定视图的大小,以便适当地调整子视图的大小。我希望它总是拉伸屏幕的长度和宽度,而不管方向如何。

    quest *anview = [[quest alloc] initWithFrame: CGRectMake(50, 50, self.view.frame.size.width-100, self.view.frame.size.height-100)];
    self.aquest=anview;
    

    但这总是返回748的宽度和1024的高度,当它应该返回相反的当我在景观。我知道你不能在模拟器上获得方向,但这也发生在设备上。当我知道方向时:

    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
    UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
    NSLog(@"device orientation:%d",orientation);
    

    我正确地得到了方向,但是这个日志语句返回748/1024,不管方向如何。

        NSLog(@"size w:%f",self.view.frame.size.width);
        NSLog(@"size h:%f",self.view.frame.size.height);
    

    有人知道发生了什么事吗?这与我将它放入viewdidLoad方法有关吗?我应该把它放在viewwillappear还是viewdidfear中?

    1 回复  |  直到 15 年前
        1
  •  12
  •   sigsegv    15 年前

    尝试使用 界限 属性而不是 框架 .

    视图总是以纵向模式创建,然后旋转,即使您以横向方式启动应用程序也是如此。通过将子视图相对于父视图的纵向大小和自动缩放蒙版的大小设置为 uiviewautoresizingmaskflexiblewidth uiviewautoresizingflexibleheight 提供 是否应旋转接口方向: 对于正确的设备方向,返回“是”。它还将保持与上边缘和左边缘的距离,除非您在遮罩中添加不同的 uiviewAutoResizingFlexibleMargin .

    推荐文章