使用stringWithFormat时解析loadHTMLString

时间:2011-10-04 14:27:18

标签: iphone objective-c ios

我想嵌入一系列YouTube视频,而不必每次都重写嵌入代码,因此使用stringWithFormat动态插入网址:

videoHTML = [NSString stringWithFormat:@"\
<html>\
<head>\
<style type=\"text/css\">\
iframe {position:absolute; top:100%; margin-top:-150px;}\
body {background-color:#000; margin:0;}\
</style>\
</head>\
<body>\
<iframe width=\"100%\" height=\"240px\" src=\"%@\" frameborder=\"0\" allowfullscreen></iframe>\
</body>\
</html>", videoURL];

[videoView loadHTMLString:videoHTML baseURL:nil];

当我记录结果时,它看起来很好,但是在模拟器中没有正确呈现,缩略图的比例和位置是错误的。如果我只是将URL硬编码到字符串中,那么它可以正常工作。所以我猜这是stringWithFormat的问题?

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

使用-stringWithFormat:时,您需要使用另一个%字符转义字符串中的%字符文字

NSString *htmlFormatString = [@"
<html>
<head>
<style type=\"text/css\">
iframe {position:absolute; top:100%; margin-top:-150px;}
body {background-color:#000; margin:0;}
</style>
</head>
<body>" stringByAppendingFormat:@"<iframe width=\"100%%\" height=\"240px\" src=\"%@\" frameborder=\"0\" allowfullscreen></iframe>
</body>
</html>", videoURL];

[videoView loadHTMLString:videoHTML baseURL:nil];