我有一个 UIPageViewController,我在其中添加了两个子视图:一个带有 UITapGestureRecognizer 的透明子视图和一个带有一些按钮的工具栏,当我点击另一个子视图时,这些按钮会从底部向上滑动。
编辑。这是 viewDidAppear:(BOOL)animated 中的子视图设置
CGRect frame;
if (UIDeviceOrientationIsPortrait([[UIDevice currentDevice]orientation])){
frame = CGRectMake(50, 0, 220, 480);
}
else {
frame = CGRectMake(50, 0, 380, 320);
}
if (!tapView) {
tapView = [[LSTapView alloc]initWithFrame:frame];
//[tapView setBackgroundColor:[UIColor colorWithRed:1 green:0 blue:0 alpha:0.4]];
[self.view addSubview:tapView];
[tapView release];
}
else {
if (UIDeviceOrientationIsPortrait([[UIDevice currentDevice]orientation])){
[tapView setFrame:CGRectMake(50, 0, 220, 480)];
[fontViewController.view setFrame:CGRectMake(0, 480, 320, 92)];
}
else {
[tapView setFrame:CGRectMake(50, 0, 380, 320)];
[fontViewController.view setFrame:CGRectMake(0, 320, 480, 92)];
}
}
if (!fontViewController){
fontViewController = [[LSFontViewController alloc]initWithNibName:@"LSFontView" bundle:nil];
}
if (UIDeviceOrientationIsPortrait([[UIDevice currentDevice]orientation])){
[fontViewController.view setFrame:CGRectMake(0, 480, 320, 92)];
}
else {
[fontViewController.view setFrame:CGRectMake(0, 320, 480, 92)];
}
[self.view addSubview:fontViewController.view];
如果我在不旋转设备的情况下更改页面,则在两个方向上一切正常。然而,当我旋转设备时,这两个子视图消失了,我发现它们不在前面。无论如何,如果我将其添加到我的代码中:
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{
[self.view bringSubviewToFront:tapView];
[self.view bringSubviewToFront:fontViewController.view];
}
发生了一些奇怪的事情:我无法再更改页面,或者更好的是,上一个和下一个 viewController 已正确加载,但它们没有显示,页面也没有改变。
有人可以解释一下发生了什么吗?
谢谢你。L.