我有一个用#34; xib"制作的Ipad应用程序。文件这是横向模式我希望这支持"风景和肖像"我想以编程方式 我写这个代码它正在工作,但有些错误 当我运行应用程序时它没有检测到它是横向还是纵向如果我改变到另一个方向这个方法正在工作,调用和工作也有任何我必须给予的东西
-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
if (size.width == 768) {
[self portrait]; // collection of Components with Portrait Size
self.forced = [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassRegular];
} else if (size.width == 1024){
[self landscape]; // collection of Components with Portrait Size
self.forced = [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassCompact];
}
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
}
-(void)portrait
{
_mLogo.frame = CGRectMake(20, 40, 200, 80);
_mCodeTF.frame = CGRectMake(240, 65, 200, 30);
_mEnterBtn.frame = CGRectMake(470, 65, 50, 30);
adonLogo.frame = CGRectMake(550, 40, 200, 80);
_mView.frame = CGRectMake(20, 155, 730, 830);
_mThumbnilScroll.frame = CGRectMake(0, 0, 730, 830);
}
-(void)landscape
{
_mCodeTF.frame = CGRectMake(355, 70, 270, 30);
_mLogo.frame = CGRectMake(45, 31, 255, 110);
_mEnterBtn.frame = CGRectMake(670, 70, 70, 30);
adonLogo.frame = CGRectMake(755, 31, 255, 110);
_mView.frame = CGRectMake(12, 160, 995, 575);
_mThumbnilScroll.frame = CGRectMake(0, 0, 995, 575);
}
答案 0 :(得分:0)
enter code here
使用
– willRotateToInterfaceOrientation:duration:
或
– didRotateFromInterfaceOrientation:
而不是viewWillTransitionToSize...
。
一方将获得新方向,另一方将获得旧方向。 使用窗口的尺寸,高度或尺寸。对于这个例子来说不是一个好主意,或者至少不是通过简单地使用==运算符。