我在UIWebView
中嵌入了UIViewController
,当设备旋转时,我有一些非常奇怪的行为。我的文字在11px
设置了字体大小(以css为单位),但是当我旋转到横向时,字体会调整为19px
(根据Safari),我无法弄清楚它的位置 - 计算来自。更奇怪的是,它上面的另一个(单行)div
的字体大小为10px
,并且不会调整大小。
我有这样的事情:
<div class="date">Sep 16</div>
<div class="body"><span class="bold">blah:</span> blah, blah</div>
用css之类的东西:
div.date {
font-size: 10px;
font-weight: bold;
width: 100%;
}
div.body {
font-size: 11px;
width: 100%;
}
body
调整大小,而date
则不调整大小。我不确定问题是HTML / CSS还是UIWebView
上的设置。
有什么想法吗?
答案 0 :(得分:1)
Safari automatically resizes an scales the viewport on orientation changes并且会对根<body>
标记中的元素采取一些自由。
Safari的目标是在屏幕上填充内容,因此如果您的内容不能填满空间,Safari会扩展一些元素以填充它。
如果您想要特定的行为,可以设置一些属性,例如minimum-scale
和maximum-scale
,以及设置viewport
的{{1}}大小。
答案 1 :(得分:0)
您可以在定位时重新加载WebView
。这对我有用。
在ViewController
:
- (void)viewWillLayoutSubviews {
[super viewWillLayoutSubviews];
[self.view setNeedsUpdateConstraints];
}
- (void)updateViewConstraints {
[super updateViewConstraints];
[yourWebView loadHTMLString:yourHTMLString baseURL:nil];
}
祝你好运!