确定横向框架和边界的问题

Posted

技术标签:

【中文标题】确定横向框架和边界的问题【英文标题】:Problems figuring out landscape frames and bounds 【发布时间】:2011-02-16 14:01:56 【问题描述】:

我正在尝试在横向 iPad 应用程序中布局多个自定义视图(通过删除 plist 中提到的除一个界面之外的所有界面来制作横向)。但是,我的代码目前无法按预期工作;

- (void)viewDidLoad [super viewDidLoad];

LeftTableViewController *lvc = [[LeftTableViewController alloc] initWithNibName:@"LeftTableViewController" bundle:nil];
// 适当调整这个视图控制器的大小
lvc.view.frame = CGRectMake(0, 0, 224, 768);
[[自我视图] addSubview:lvc.view];

ReaderViewController *rvc = [[ReaderViewController alloc] initWithNibName:nil bundle:nil];
// 适当调整这个视图控制器的大小
rvc.view.frame = CGRectMake(224, 0, 800, 768);
[[自视图] addSubview:rvc.view];

我希望上面的代码将 LeftTableViewController 完全放在左侧。这似乎可行,但我必须从笔尖上移除所有尺寸标记才能将它弄到那里。 ReaderViewController 应该会占用剩余空间,但它只占用剩余空间的一半左右。这张图片说明了这一点(ReaderViewController 是绿色空间,而应用程序是紫色空间)。

http://i52.tinypic.com/z7d2.png

我似乎误解了横向模式下的框架和边界的一些重要内容。为了使视图按预期显示,我应该为框架或边界设置什么坐标,为什么?

【问题讨论】:

【参考方案1】:

横向和纵向模式的坐标相同。纵向是 0,0(左、上)和 768,1024(宽、高),横向是 0,0(左、上)和 1024,768(宽、高)。

这很难回答,因为我们看不到整个代码和您的 XIB 文件。你可能有错误的自动调整掩码。

附: 768 的高度不正确,因为您有可见的状态栏,它有 20 个像素。

【讨论】:

最后我最终为应用程序创建了一个合适的笔尖,而不是以编程方式布局它。这个问题我该怎么办?只是将其标记为已回答?离开它? 在修改了一些之后,确实是 Autoresizing 蒙版弄乱了我的框架。这有助于我禁用所有选项以允许横向以外的任何方向。

以上是关于确定横向框架和边界的问题的主要内容,如果未能解决你的问题,请参考以下文章

iPad横向尺寸问题

UIInterfaceOrientation、CGAffineTransform、框架、边界和中心

iOS 7 旋转设备未检测到横向屏幕边界

由于纵向尺寸的超视帧,iOS自动布局在横向模式下不正确?

旋转到横向后,iOS 边界发生变化,然后又回到纵向

Vuetify - v-btn(按钮)的标签与横向边界重叠