[英]Handling rotation and adjusting views programmatically (Xcode)
这是我一直在努力的问题:
我正在使用loadView以编程方式创建view
。 加载后,在“人像”视图中看起来非常不错。 但是,我想处理设备的旋转。 因此,我将使用willAnimateRotationToInterfaceOrientation
方法。
在此方法中,我调用一个可调整所有元素的函数。 该功能的作用只是遍历我的所有视图,并为每个视图设置新的CGRect
。 它在纵向方向(上下颠倒)上都可以正常工作,但是一旦将方向更改为水平方向,它就会进行裁剪。
两个问题:
我认为您缺少关键部分。 当您在纵向视图上设置框架时,视图确实加载了,视图得到了框架,但是当它变为横向时,它改变了,但是从那里再次出现,我认为您没有为纵向视图设置框架。 使用通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:@"UIDeviceOrientationDidChangeNotification" object:nil];
-(void) orientationChanged:(NSNotification *)notification
{
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
UIDeviceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
if((orientation == UIDeviceOrientationPortrait) || (orientation == UIDeviceOrientationPortraitUpsideDown)) {
// set frame here
}else if ((orientation == UIDeviceOrientationLandscapeLeft) || (orientation == UIDeviceOrientationLandscapeRight)){
// set frame here too
}
}];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.