我正在努力让一个应用程序在横向模式下工作,我已经差不多完成了,但由于某种原因,我视图上的按钮不起作用(即他们没有按下)。我正在使用根视图控制器,它按如下方式加载初始视图控制器:
- (void)viewDidLoad
{
[super viewDidLoad];
StartViewController *viewController = [[StartViewController alloc] initWithNibName:@"StartView" bundle:nil];
self.startViewController = viewController;
startViewController.delegate = self;
[viewController release];
[self.view addSubview:startViewController.view];
}
我还在Info.plist文件中设置了Initial Interface Orientation值,并在我的根视图控制器中覆盖了以下内容:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return((interfaceOrientation == UIInterfaceOrientationLandscapeRight) ||
(interfaceOrientation == UIInterfaceOrientationLandscapeLeft));
//return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
视图加载正常并以横向模式填充屏幕,但由于某种原因,我无法按下视图上的任何按钮。
我确信这与我使用根视图控制器有关,因为我已经设法让这个工作正常,之前只有一个视图控制器的应用程序。
有人可以帮助我吗?
答案 0 :(得分:4)
我认为问题出在xib的某个地方。
例如。该按钮放在UIView
上,调整大小不正确的掩码。因此,在横向模式下,按钮显示在视图外部,触摸无法到达按钮。您可以在所有父视图中检查设置clipSubviews
- 如果我是对的,您将不再看到该按钮。
答案 1 :(得分:0)
我有一个类似的问题。在我的情况下,我是UITableViewCell的子类,我已经覆盖了layoutSubviews方法。在那里,我正在做翻译。但是我忘了把[super layoutSubviews];在我实施之前。在我把它放到htere后,按钮再次以横向模式工作。奇怪的是,在肖像中,它的工作和景观都没有。