我正在使用ViewDeck为我的iPad应用程序中的滑动UI提供动力,但我遇到了一些问题。
我想将leftViewController大小调整到一个特定的大小,而不考虑旋转。我必须设置ViewDeck的代码如下所示,哦,我正在使用故事板。
- (id)initWithCoder:(NSCoder *)aDecoder
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UINavigationController *navigationController = [storyboard instantiateViewControllerWithIdentifier:@"leftViewController"];
JWTimerGroupsViewController *timerGroupsViewController = navigationController.viewControllers[0];
IISideController *constrainedSizeLeftViewController = [[IISideController alloc] initWithViewController:navigationController];
JWMainTableViewController *middleViewController = (JWMainTableViewController *)[storyboard instantiateViewControllerWithIdentifier:@"middleViewController"];
[timerGroupsViewController setDelegate:middleViewController];
self = [super initWithCenterViewController:middleViewController leftViewController:constrainedSizeLeftViewController];
self.centerhiddenInteractivity = IIViewDeckCenterHiddenNotUserInteractiveWithTapToClose;
/* This below IS NOT the size of the left view controller? Just seems odd that it isn't */
[super setLeftSize:200];
[super setSizeMode:IIViewDeckViewSizeMode];
if (self) {
// Add any extra init code here
}
return self;
}setLeftSize似乎设置了topViewControllers宽度?这使得左视图控制器的大小在旋转时不一致。
另外,我看到了一些可怕的块状阴影,当topVC被打开,然后设备被旋转。
是否有可能修正左边ViewController的大小和在ViewDeck中最高VC打开的数量?
编辑
我刚刚找到了对这种方法的参考:
IISideController *constrainedSizeLeftViewController = [[IISideController alloc] initWithViewController:navigationController constrained:200];它将左视图控制器约束为特定值。但是现在仍然没有办法让顶级的VC开放到那个宽度吗?!
发布于 2013-12-24 20:04:31
您可以尝试这里建议的方法:https://stackoverflow.com/a/16484446/928209
基本上是:
这是我的代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIStoryboard* storyboard = self.window.rootViewController.storyboard;
UINavigationController* leftSideVC = (UINavigationController*)[storyboard instantiateViewControllerWithIdentifier:@"tableNavController"];
UINavigationController* centerNavVC = (UINavigationController*) self.window.rootViewController;
IIViewDeckController* viewDeckController = [[IIViewDeckController alloc] initWithCenterViewController:centerNavVC leftViewController:leftSideVC rightViewController:nil];
self.window.rootViewController = viewDeckController;
viewDeckController.resizesCenterView = YES;
viewDeckController.sizeMode = IIViewDeckViewSizeMode;
[self.window makeKeyAndVisible];
return YES;
}当我在加载我的故事板后尝试在我的IIViewDeckController中编写这种方法时,我发现我在视图大小方面的许多问题消失了。例如,在此之前,为了使侧视图成为固定宽度,我必须将leftSize属性设置为(screenWidth - side ),而不是我想要的实际“宽度”。一旦我让IIViewDeckController成为应用程序的rootViewController,不是通过故事板,而是在我的AppDelegate中的代码中,我可以设置固定的大小为“宽度”,它正常工作。
https://stackoverflow.com/questions/17198244
复制相似问题