Iphone 根据UIWebView的内容计算其高度
我有一个名为Iphone 根据UIWebView的内容计算其高度,iphone,uitableview,uiwebview,Iphone,Uitableview,Uiwebview,我有一个名为Announcement的类,它有一个Title(NSString),一个Publishing Date(NSString)和一个Body(NSString,带有HTML内容) 我想以类似于电子邮件应用程序的方式显示它。当你阅读一封电子邮件时,你有前三行(From,To,Title[date]),然后是电子邮件的内容 我只想创建“Title[date]”行,然后创建body。我设想它是一个UITableView,第一个单元格上有我的标题,第二个单元格上有一个UIWebView 但单元
Announcement
的类,它有一个Title
(NSString
),一个Publishing Date
(NSString
)和一个Body
(NSString
,带有HTML内容)
我想以类似于电子邮件应用程序的方式显示它。当你阅读一封电子邮件时,你有前三行(From,To,Title[date]),然后是电子邮件的内容
我只想创建“Title[date]”行,然后创建body。我设想它是一个UITableView
,第一个单元格上有我的标题
,第二个单元格上有一个UIWebView
但单元格的高度似乎正好与UIWebView
的高度相同,所以我的问题是:
如何根据我的身体计算myUIWebView
的高度?因为基本上,当你垂直滚动时,你会滚动整个UITableView
,而当你水平滚动时,你只会滚动UIWebView
内容
谢谢有几种方法可以找到UIWebView
内容的高度
以下是一些要点:
请注意,在UITableView
中使用UIWebView
并不一定是一个好主意,特别是如果在同一UITableView
中有许多公告可以滚动浏览。如果每个UITableView
只显示一条公告,您应该可以不受影响,但是对于有大量单元格可滚动的表,在单元格中使用网络视图可能会导致性能问题
苹果还建议不要使用嵌入式uiwebview
/uitableview
/uiscrollview
从:
重要信息:不应在中嵌入UIWebView或UITableView对象
UIScrollView对象。如果这样做,可能会导致意外行为
因为两个对象的触摸事件可能会混淆和错误
处理
我的2美分:)有几种方法可以找到UIWebView
内容的高度
以下是一些要点:
请注意,在UITableView
中使用UIWebView
并不一定是一个好主意,特别是如果在同一UITableView
中有许多公告可以滚动浏览。如果每个UITableView
只显示一条公告,您应该可以不受影响,但是对于有大量单元格可滚动的表,在单元格中使用网络视图可能会导致性能问题
苹果还建议不要使用嵌入式uiwebview
/uitableview
/uiscrollview
从:
重要信息:不应在中嵌入UIWebView或UITableView对象
UIScrollView对象。如果这样做,可能会导致意外行为
因为两个对象的触摸事件可能会混淆和错误
处理
我的2美分:)在webview委托方法中,只需尝试以下代码:
- (void)webViewDidFinishLoad:(UIWebView *)webView{
[webviewTopicDesc sizeToFit];
[webviewTopicDesc setFrame:CGRectMake(webviewTopicDesc.frame.origin.x, webviewTopicDesc.frame.origin.y, 300.0, webviewTopicDesc.frame.size.height)];
}
在此之前,将webview高度设置为5.0
希望对你有帮助
在这里,您可以根据字符串获取动态高度
-(CGSize)getDynemicHeight:(int)pintFixWidth :(NSString *)pstrText
{
CGSize maximumSize=CGSizeMake(pintFixWidth, g_Max_Width);
UIFont *myFont = [UIFont fontWithName:g_Default_Font_Name size:g_Default_Font_Size];// font used for label
myFont=[UIFont boldSystemFontOfSize:g_Default_Font_Size];
CGSize sizeS = [pstrText sizeWithFont:myFont
constrainedToSize:maximumSize
lineBreakMode:UILineBreakModeWordWrap];
sizeS.height=sizeS.height+39;
return sizeS;
}
在这里,您必须使用字体样式来固定宽度和字体大小
可能对您有所帮助。在webview委托方法中,只需尝试以下代码:
- (void)webViewDidFinishLoad:(UIWebView *)webView{
[webviewTopicDesc sizeToFit];
[webviewTopicDesc setFrame:CGRectMake(webviewTopicDesc.frame.origin.x, webviewTopicDesc.frame.origin.y, 300.0, webviewTopicDesc.frame.size.height)];
}
在此之前,将webview高度设置为5.0
希望对你有帮助
在这里,您可以根据字符串获取动态高度
-(CGSize)getDynemicHeight:(int)pintFixWidth :(NSString *)pstrText
{
CGSize maximumSize=CGSizeMake(pintFixWidth, g_Max_Width);
UIFont *myFont = [UIFont fontWithName:g_Default_Font_Name size:g_Default_Font_Size];// font used for label
myFont=[UIFont boldSystemFontOfSize:g_Default_Font_Size];
CGSize sizeS = [pstrText sizeWithFont:myFont
constrainedToSize:maximumSize
lineBreakMode:UILineBreakModeWordWrap];
sizeS.height=sizeS.height+39;
return sizeS;
}
在这里,您必须使用字体样式来固定宽度和字体大小
可能对您有帮助。它可以工作,但我需要最小的内容大小(或缩放比例)。基本上,当我加载web视图时,我希望显示完整的内容。我有更新我的答案和添加函数,以根据字符串长度获得动态高度。希望它能对你有所帮助。它可以工作,但我想要最小的内容大小(或缩放比例)。基本上,当我加载web视图时,我希望显示完整的内容。我有更新我的答案和添加函数,以根据字符串长度获得动态高度。希望它可以帮助你。我想要最小的内容大小(或缩放比例)。基本上,当我加载web视图时,我希望显示全部内容。在这种情况下,您需要将UIWebView
的scalesPageToFit
属性设置为TRUE
我希望我的UIWebView具有以下帧=cRectMake(0,0320,高度),并且我希望内容具有完全相同的“宽度”(320)并相应地调整它的高度。例如,如果禁用scalesPageToFit,并为UIWebView(0,0320480)创建一个框架,则内容将水平固定,而我只能垂直滚动。我想要一些类似的东西,只是我希望已经根据内容的高度设置了高度。另外,我也希望能够进行缩放,但如果我将ScaleSpageToIt设置为,则最初内容不适合我的宽度。很抱歉,我没有说清楚。只要您在表中设置UIWebView
,而不启用“用户交互”,就可以嵌入它们。正如您在摘录中所述,问题在于如何处理触摸事件。此外没有其他简单的方式来呈现html。我想要最小的内容大小(或缩放比例)。基本上,当我加载web视图时,我希望显示全部内容。在这种情况下,您需要将UIWebView
的scalesPageToFit
属性设置为TRUE
我希望我的UIWebView具有以下帧=cRectMake(0,0320,高度),并且我希望内容具有完全相同的“宽度”(320)并相应地调整它的高度。例如,如果禁用scalesPageToFit,并为UIWebView(0,0320480)创建一个框架,则内容将水平固定,而我只能垂直滚动。我想要类似的东西,只是我希望高度已经设定好