有人能告诉我如何在iOS 7 iPad中使用自动布局或编程方式支持横向和纵向方向吗。
我尝试过用@"将旋转方法"编程,也尝试过自动布局。。但这两者都不能正常工作。
不知道我在哪里犯了错误
请检查以下代码以供参考,并更正我的
-(void)WillRotateToInterface Orientation:(UIInterfaceOrientation)to Interface Orientation持续时间:(NSTimeInterval)持续时间{
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
NSLog(@"Landscape left");
NSLog(@"Landscape left : %@",LoginBackgroundView);
LoginViewObj.loginBackgroundImage.frame= CGRectMake(0 , 0, 1024, 768);
LoginViewObj.LoginBackgroundView.frame =CGRectMake(346, 228, 337, 300);
} else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {
NSLog(@"Landscape right");
LoginViewObj.loginBackgroundImage.frame= CGRectMake(0 , 0, 1024, 768);
LoginViewObj.LoginBackgroundView.frame =CGRectMake(346, 228, 337, 300);
} else if (toInterfaceOrientation == UIInterfaceOrientationPortrait) {
NSLog(@"Portrait");
NSLog(@"potrait : %@",LoginBackgroundView);
LoginViewObj.loginBackgroundImage.frame= CGRectMake(0 , 0, 768, 1024);
LoginViewObj.LoginBackgroundView.frame =CGRectMake(0, 330, 337, 300);
} else if (toInterfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {
NSLog(@"Upside down");
LoginViewObj.loginBackgroundImage.frame= CGRectMake(0 , 0, 768, 1024);
LoginViewObj.LoginBackgroundView.frame =CGRectMake(0, 330, 337, 300);
}
}
(旧方法)支持<=上的所有接口方向iOs 5。。把这个放在你的viewController 中
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
return YES;
}
(当前方式)支持>=iOs 6。。将这些放在viewController中,并在目标设置的"常规"(第一个)选项卡中选择支持的方向。。。
- (BOOL)shouldAutorotate NS_AVAILABLE_IOS(6_0){
return YES;
}
- (NSUInteger)supportedInterfaceOrientations NS_AVAILABLE_IOS(6_0){
return UIInterfaceOrientationMaskAll;
}
如果你一直以iOs5为目标,你可以同时拥有这两种功能——没有问题。
使用此获得解决方案
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) {
// here for landscape mode frames
}
if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
LoginBackgroundView.frame =CGRectMake(200, 330, 337, 300);
loginBackgroundImage.frame= CGRectMake(0 , 0, 768, 1024);
loginBackgroundImage.image = [UIImage imageNamed:@"Login_potrait.png"];
footerView.frame= CGRectMake(0, 980,768, 50);
logoImage.frame = CGRectMake(220, 197, 258, 105);
}
}
现在控件在两个方向上都能正常工作