UIWebView의 일반적인 속성 및 사용 요약

3077 단어
UIWebView는 비교적 적게 사용하기 때문에 자주 같은 문제에 부딪히면 잊어버린다. 낡은 코드를 뒤져서 찾아야 한다. 지금은 자주 사용하는 속성이나 용법을 기록해서 자신과 필요로 하는 사람이 보기 편리하게 한다.
1. UIWebView는 글꼴 크기, 색상, 글꼴을 설정합니다.
UIWebView는 자체 속성으로는 글꼴의 일부 속성을 설정할 수 없으며 다음과 같은 html 코드로만 설정할 수 있습니다.
UIWebView는 비교적 적게 사용하기 때문에 자주 같은 문제에 부딪히면 잊어버린다. 낡은 코드를 뒤져서 찾아야 한다. 지금은 자주 사용하는 속성이나 설정을 기록해서 자신과 필요로 하는 사람이 보기 편리하게 한다.
1. UIWebView 설정 글꼴 크기, 색상, 글꼴: 1. UIWebView 설정 글꼴 크기, 색상, 글꼴:
UIWebView는 자신의 속성을 통해 글꼴의 일부 속성을 설정할 수 없고 html 코드로만 설정할 수 있습니다. 코드는 다음과 같습니다. UIWebView는 자신의 속성을 통해 글꼴의 일부 속성을 설정할 수 없고 html 코드로만 설정할 수 있습니다. 코드는 다음과 같습니다.
NSString *jsString = [NSString stringWithFormat:@"<html> 
" "<head>
" "<style type=\"text/css\">
" "body {font-size: %f; font-family: \"%@\"; color: %@;}
" "</style>
" "</head>
" "<body>%@</body>
" "</html>", fontSize, fontFamily, fontColor, htmlText]; [_infoTextView loadHTMLString:jsString baseURL:nil];

또한 로컬 css 파일을 로드하여 다음과 같은 형식으로 css 파일에 정의할 수 있습니다.
NSString *jsString = [NSString stringWithFormat:@"<html> 
" "<head>
" "<link href=\"text.css\" rel=\"stylesheet\" type=\"text/css\">
" "</style>
" "</head>
" "<body>%@</body>
" "</html>", tempText]; NSString *path = [[NSBundle mainBundle] bundlePath]; NSURL *baseURL = [NSURL fileURLWithPath:path]; [infoWebView loadHTMLString:jsString baseURL:baseURL];

2, UIWebView 높이 계산
인터넷에 다음과 같은 코드를 사용하여 높이를 계산하는 것을 소개하는 글이 있는데, 사용한 후 느낌이 정확하지 않다. 주로 html을 아직 불러오지 않았기 때문에 계산이 정확하지 않기 때문이다.
CGFloat height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue];

나중에 다음과 같은 방법을 사용하면 비교적 정확하다. 바로 불러오기가 끝난 후에 계산하는 것이다. 그러나 문제는 처음 높이를 계산하고 대응하는 높이를 동시에 설정한 후에 뒤에 계산한 결과는 첫 번째 결과의 영향을 받는다. 즉, 높이가 첫 번째 계산의 결과를 유지하는 것이다.내가 테스트한 것은 첫 번째는 내용이 비교적 많고 뒤의 몇 번은 내용이 비교적 적지만 높이는 시종 첫 번째 높이를 유지했다. 만약에 뒤의 내용이 첫 번째 것보다 많으면 다시 계산할지 첫 번째 계산 결과를 유지할지 모르겠다.그러니 안전하게 매번 계산하기 전에 먼저 높이를 다시 설정해라.
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    const CGFloat defaultWebViewHeight = 22.0;
    //reset webview size
    CGRect originalFrame = webView.frame;
    webView.frame = CGRectMake(originalFrame.origin.x, originalFrame.origin.y, 320, defaultWebViewHeight);
    
    CGSize actualSize = [webView sizeThatFits:CGSizeZero];
    if (actualSize.height <= defaultWebViewHeight) {
        actualSize.height = defaultWebViewHeight;
    }
    CGRect webViewFrame = webView.frame;
    webViewFrame.size.height = actualSize.height;
    webView.frame = webViewFrame;
    
}

좋은 웹페이지 즐겨찾기