- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我向 UIViewController 添加了一个 webview。我假设我可以将它的大小与 UIViewController 的 View 相匹配,但很快意识到 UIControllerView 框架独立于屏幕方向,因此显示框架就像在纵向模式下一样(所以错误的方式,如果屏幕是在横向)。执行 UIInterfaceOrientationIsPortrait()
是行不通的,因为如果设备平放,它仍然会报告它是纵向的,即使屏幕旋转到横向也是如此。
为了解决这个问题,我检查了状态栏的方向,然后使用 UIScreen 边界(也独立于旋转)计算出当前帧,然后删除了状态栏的大小(如果它可见)。
CGRect frame = [UIScreen mainScreen].bounds;
BOOL isPortrait;
UIDeviceOrientation orientation = (UIDeviceOrientation)[[UIApplication sharedApplication] statusBarOrientation];
if (orientation == UIDeviceOrientationPortrait || orientation == UIDeviceOrientationPortraitUpsideDown) {
isPortrait = YES;
}
else {
isPortrait = NO;
}
if (!isPortrait) {
frame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.height, frame.size.width);
}
if ([UIApplication sharedApplication].statusBarHidden) {
return frame;
}
else {
return CGRectMake(frame.origin.x,
frame.origin.y,
frame.size.width,
frame.size.height - 20);
}
现在我遇到了另一个问题 - 尽管我将 UIWebView 设置为自动调整大小,但 UIViewController 的 View 框架与旋转无关,因此它不会改变,因此我的 UIWebView 不会在旋转时正确改变框架。
(奇怪的是,尽管 UIViewController View 框架没有改变, View 实际上确实正确地调整了自己的大小)
我试过使用 didRotateFromInterfaceOrientation:
方法,它确实调整了它的大小,但只有在所有旋转动画完成之后。
使用 willRotateToInterfaceOrientation:duration:
会产生与之前相同的问题 - UIInterfaceOrientationIsPortrait()
不是方向的真实反射(reflect)。
有人设法做到这一点吗?
最佳答案
尝试自动调整 webview 和 viewcontroller 的 View 。或者您也可以使用另一个 View 并删除 viewcontroller 的 nib 文件中的默认 View 。自动调整该 View 的大小并连接到 View socket 。
关于ios - 在旋转时调整 UIViewController 内的全屏 View 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16416978/
我是一名优秀的程序员,十分优秀!