gpt4 book ai didi

iphone - 横向模式下 View 的位置和大小错误

转载 作者:行者123 更新时间:2023-12-03 21:22:42 26 4
gpt4 key购买 nike

我正在为 iPad 开发“仅横向模式”应用程序。问题是我的 View 在屏幕上的位置错误,而且我找不到原因...

我已经在 Info.plist 中设置了必要的属性:

    <key>UIInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscapeRight</string>

<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>

我有这样的层次结构:

UIWindow --> MainMenuViewController.view --> MyTableviewController.view

在 AppDelegate 的 application:didFinishLaunchingWithOptions: 方法中,我有以下代码: CGRect 矩形 = [[UIScreen 主屏幕] 边界]; [窗口设置边界:矩形];

mainMenuController = [[MainMenuViewController alloc] init];

[window addSubview:mainMenuController.view];
[window makeKeyAndVisible];

return YES;

在 MyMenuController 的 viewDidload: 中,我有:

[super viewDidLoad];
[[UIApplication sharedApplication] setStatusBarHidden:YES];

SelectPictureTableViewController *selectPictureViewController = [[SelectPictureTableViewController alloc] initWithStyle:UITableViewStylePlain];
[selectPictureViewController.view setBounds:CGRectMake(0.0, 128.0, 1024.0, 640.0)];
[self.view addSubview:selectPictureViewController.view];

在 SelectPictureTableViewController 的 initWithStyle: 中我写道:

if ((self = [super initWithStyle:style])) {
templatesArray = [[NSMutableArray alloc] init];
tumbnailsInRow = 3;

self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg.png"]];
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
self.tableView.allowsSelection = NO;
}
return self;

在两个 ViewController 中我都有这个实现:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation != UIInterfaceOrientationPortrait &&
interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

对我来说,它看起来应该显示 1024x640 表格 View 。但它显示高度约为 350px 的 tableview,并移动到屏幕中间(距顶部约 250px)。您知道为什么它可以如此转变吗?也许我必须在某个地方设置界限却忘了这样做?被这个问题困扰了几个小时。

PS:没有 MainMenuViewController,tableview 的位置很好(当我将 tableview 添加为 UIWindow 的 subview 时)。但我需要将其他 UI 元素放置到屏幕上,并且我需要这个 MainMenuViewController...

干杯!

最佳答案

我找到了答案:

我已将其添加到我的 MainMenuViewController 的方法 viewDidLoad 中:

    UIViewAutoresizing mask = (1 & !UIViewAutoresizingFlexibleTopMargin);
selectPictureViewController.view.autoresizingMask = mask;

问题是默认的 autoresizingMask。

关于iphone - 横向模式下 View 的位置和大小错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3286298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com