gpt4 book ai didi

ios - 添加到 Windows 的 View 的 ios 8 旋转问题

转载 作者:可可西里 更新时间:2023-11-01 03:39:12 25 4
gpt4 key购买 nike

enter image description here我已经为 View 旋转创建了类别,并在 Controller View 和窗口(用于显示自定义指示器)上添加了 View 。我的代码在 7.X 和 xCode 5.X 以及 xCode6-beta6 上运行良好。但不适用于 IOS 8 beta。它似乎与旧版 ios 一样,windows 旋转不适用于 ios 8 beta。

你能给我建议吗....非常感谢。

我的代码是这样的

- (void)application:(UIApplication *)application willChangeStatusBarOrientation:(UIInterfaceOrientation)newStatusBarOrientation duration:(NSTimeInterval)duration {
if(!self.isIpad)
{

[menu.view rotateViewToOrientation:newStatusBarOrientation animated:YES];
if(newStatusBarOrientation==UIInterfaceOrientationPortrait || newStatusBarOrientation==UIInterfaceOrientationPortraitUpsideDown)
{
if (IS_IPHONE_5) {
menu.view.frame= CGRectMake(0, 518, 320, 50);
} else {
menu.view.frame= CGRectMake(0, 430, 320, 50);
}

} else if(newStatusBarOrientation==UIInterfaceOrientationLandscapeLeft) {

if (IS_IPHONE_5) {
menu.view.frame= CGRectMake(270,0,50,568);
} else {
menu.view.frame= CGRectMake(270,0,50,480);
}

} else {

if (IS_IPHONE_5) {
menu.view.frame= CGRectMake(0,0,50,568);
} else {
menu.view.frame= CGRectMake(0,0,50,480);
}
}
[menu reloadMenu];
}
}


//Method of Menu Class for orientation change setup
- (void)rotateViewToOrientation:(UIInterfaceOrientation)orientation animated:(BOOL)animated {
CGPoint center = self.center;
CGRect bounds = self.bounds;
CGAffineTransform transform = CGAffineTransformIdentity;
int intOri=orientation;
switch (intOri) {
case UIInterfaceOrientationPortraitUpsideDown:
transform = CGAffineTransformMakeRotation(M_PI);
break;
case UIInterfaceOrientationLandscapeLeft:
transform = CGAffineTransformMakeRotation(-M_PI_2);
break;
case UIInterfaceOrientationLandscapeRight:
transform = CGAffineTransformMakeRotation(M_PI_2);
break;
case UIInterfaceOrientationPortrait:
transform = CGAffineTransformMakeRotation(0);
break;

}
if (animated) {
[UIView beginAnimations:nil context:nil];
}
self.transform = transform;
bounds = CGRectApplyAffineTransform(bounds, transform);
self.bounds = CGRectMake(0, 0, bounds.size.width, bounds.size.height);
self.center = center;
if (animated) {
[UIView commitAnimations];
}
}

最佳答案

我已经尝试了很多修复......并且它可以像补丁一样工作

{
[self.window setBounds:temp];
[menu.view setFrame:CGRectMake(0, self.window.frame.size.height-50, self.window.frame.size.width, 50)];
[menu.view removeFromSuperview];
[self.window addSubview:menu.view];
[self.window makeKeyAndVisible];
}

并将 CGAffineTransformMakeRotation 的角度重置为 0 度,适用于所有类型的设备模式。对于 ios 8。

我知道这不是一个合适的解决方案,但我没有任何替代方法,所以等待一个好的答案。

关于ios - 添加到 Windows 的 View 的 ios 8 旋转问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25684892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com