我的应用程序中有一个UIWebView,我加载了一些HTML(文章)到它上面,并添加了一些CSS来使一切更美好。这很简单明了,一切都很完美,直到我尝试添加横屏阅读功能后才发现,UIWebView忽略了我在HTML中放置的任何css“font-size”,并且在旋转到横向模式后大幅增加字体大小。
我花了大约4-5个小时的时间(我是iPhone应用程序编程的新手,但在做正确的事情时我相当固执),试图修复它。尝试了很多很多配置选项-什么都不行。
今晚发生了一些神奇的事情。只需查看源代码:
带错误的横屏:
r = CGRectMake(0.0, 0.0, 480.0, 320.0);
[adView.view removeFromSuperview];
if (!isFullScreen) {
minus = 50 + minus;
[controlsView setFrame:CGRectMake(0, r.size.height - 50, r.size.width, 50)];
} else {
minus = 20;
}
[textView setFrame:CGRectMake(0, 0, r.size.width, r.size.height - minus)];
[scrollView setFrame:CGRectMake(0, 0, r.size.width, r.size.height - minus)];
固定横向布局(字体大小不再改变):
r = CGRectMake(0.0, 0.0, 480.0, 320.0);
[adView.view removeFromSuperview];
if (!isFullScreen) {
minus = 50 + minus;
[controlsView setFrame:CGRectMake(0, r.size.height - 50, r.size.width, 50)];
} else {
minus = 20;
}
[textView setFrame:CGRectMake(0, 0, r.size.width, r.size.height - minus)];
[scrollView setFrame:CGRectMake(0, 0, r.size.width, r.size.height - minus)];
if (!isFullScreen) {
minus = 1 + minus;
} else {
minus = 20+1;
}
[textView setFrame:CGRectMake(0, 0, r.size.width, r.size.height - minus)];
[scrollView setFrame:CGRectMake(0, 0, r.size.width, r.size.height - minus)];
你可以看到,我只是再次添加了相同的代码,并将边距(减去)增加了一个点。然后再次设置 setFrame(不,这并不能解决只使用一个 setFrames 调整大小的问题)。
我很高兴它能工作,但我想知道如何以正确的方式实现,因为现在代码看起来很愚蠢,在应用程序底部有1个点高的边距。
不要问我为什么尝试复制粘贴相同的代码..