【发布时间】:2012-04-26 07:34:48
【问题描述】:
我在 iOS 上使用 Acapela TTS。 我有一个 HTML 文档,其中包含我想要读出的所有文本(和标记)。 文本被分成几段,我希望能够在每个标题处开始 TTS。 目前,我将每个段落放在它自己的 UIWebView 中(用于处理内部标记)并将它们添加到 UIScrollView 以导航所有元素。每个 UIWebView 都带有一个按钮,所以当它被按下时,连接的文本会被大声朗读。 我现在的问题是,我必须使用框架(意味着静态 y 位置)放置 UIWebView 和按钮,但这需要我有准确的高度,这是我当前的问题。 我已经尝试使用这个问题中提到的解决方案:UIWebView height,但它仍然看起来不太好 - 网页浏览量太高或太短,我需要它是完美的,所以它看起来像一个一致的网页。
有没有人知道一种不同的方式来执行这种类型的 TTS,而无需将其拆分为我忽略的单独 web 视图?
这是我放置 UIWebViews 的代码:
float yOffset = 0;
UIWebView *previous = nil;
//UIWebView delegate
-(void)webViewDidFinishLoad:(UIWebView *)webView{
NSString *height = [webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"];
if(previous!=nil){
yOffset += previous.frame.size.height;
}
CGFloat h = [height floatValue];
CGRect frame = CGRectMake(0, yOffset, scrollView.frame.size.width, h);
[webView setFrame:frame];
[webView setOpaque:NO];
[webView setBackgroundColor:[UIColor whiteColor]];
previous = webView;
[scrollView addSubview:webView];
yOffset += previous.frame.size.height;
[scrollView setContentSize:CGSizeMake(scrollView.frame.size.width, yOffset)];
}
【问题讨论】:
标签: ios uiwebview uiscrollview