iPhone开发 – 设置UIWebView字体
我必须显示丰富的文本,我从服务器拉,所以我使用的UIWebView。 现在的问题是,我无法控制在UIWebView中使用的字体。 如何更改字体以使用系统字体(使其与应用程序的其余部分保持一致)?
目前我正在做这样的事情:
myRichTextView = [[UIWebView alloc] initWithFrame:CGRectMake(x, y, width, height)]; myRichTextView.backgroundColor = [UIColor clearColor]; [myRichTextView setScalesPageToFit:NO]; [myRichTextView loadHTMLString:myString baseURL:[NSURL URLWithString:myBaseURL]];
同样,需要控制显示字体。 如果我无法控制字体,请让我知道UIWebView的其他select。
谢谢
在HTML文档中引用CSS样式表,或将样式信息放入HTML文档本身的顶部
它工作时,我修改了这样的string。 你的克里斯,应该没有什么区别。
NSString *myDescriptionHTML = [NSString stringWithFormat:@"<html> \n" "<head> \n" "<style type=\"text/css\"> \n" "body {font-family: \"%@\"; font-size: %@;}\n" "</style> \n" "</head> \n" "<body>%@</body> \n" "</html>", @"helvetica", [NSNumber numberWithInt:kFieldFontSize], content];
我在Web视图中使用以下CSS来完成你正在说的事情。
body { font-family:helvetica; }
但是你的样子看起来应该是一样的。 奇怪。 唯一的区别是我可以看到的是字体与字体家族,但这不应该有所作为。
克里斯。
系统字体
iOS 9和Safari OS X 10上的苹果系统
font-family: -apple-system; font-family: '-apple-system','HelveticaNeue'; // iOS 8 compatible
我做了一个方法 ,在给定的UIColor
和UIFont
的正确样式的HTML体内包装一些文本。 这是基于穆斯塔法的答案 。
它是这样使用的:
NSString * htmlString = [MyClass htmlFromBodyString:@"an <b>example</b>" textFont:[UIFont systemFontOfSize:10] textColor:[UIColor grayColor]]; [webView loadHTMLString:htmlString baseURL:nil];
另一个简单的方法,为我工作
UIFont *font = [UIFont systemFontOfSize:15]; NSString *htmlString = [NSString stringWithFormat:@"<span style=\"font-family:Helvetica; font-size: %i\">%@</span>", (int) font.pointSize, [bodyText stringWithNewLinesAsBRs]]; [myWebView loadHTMLString:htmlString baseURL:nil];
只是改变
font:helvetica
至
font-family:helvetica
我用
body { font-family: 'Noteworthy-Bold'; }
这适用于我的关于页面(WebView),因为我的应用程序的其余部分也使用苹果的“值得注意的粗体”。
如果您要使用自己的字体,请使用@ font-face并引用TTF或EOT文件。
这里是我易于使用和易于扩展解决scheme与更多的字体设置:
myHTMLLabel = [[UIWebView alloc] initWithFrame:CGRectMake(myX,myY,myWidth,myHeight)]; myHTMLLabel.userInteractionEnabled=NO; myHTMLLabel.scalesPageToFit=NO; [myHTMLLabel setOpaque:NO]; myHTMLLabel.backgroundColor = myBackColor; NSString *myHTMLText = [NSString stringWithFormat:@"<html>" "<head><style type='text/css'>" ".main_text {" " display: block;" " font-family:[fontName];" " text-decoration:none;" " font-size:[fontSize]px;" " color:[fontColor];" " line-height: [fontSize]px;" " font-weight:normal;" " text-align:[textAlign];" "}" "</style></head>" "<body> <SPAN class='main_text'>[text]</SPAN></body></html>"]; myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[text]" withString: myText]; myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[fontName]" withString: myFontName]; myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[fontSize]" withString: myFontSize]; myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[fontColor]" withString: myFontColorHex]; myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[textAlign]" withString: myFontAlign]; NSLog(@"*** renderHTMLText --> myHTMLText: %@",myHTMLText); [myHTMLLabel loadHTMLString:myHTMLText baseURL:nil];
- 获取UIScrollView内容的可见性
- self.title设置navigationController和tabBarItem的标题? 为什么?
- 你如何设置Eclipse的iPhone开发工作(而不是Xcode)?
- 中心UIPickerView文本
- 在iOS中实现HTTP Live Streaming
- 为什么不使用开发configuration而不是临时的?
- 快速添加单引脚MKMapView?
- 根据顶部图像的alpha /透明度混合两个uiimages
- targetContentOffsetForProposedContentOffset:withScrollingVelocity无子类化UICollectionViewFlowLayout