我已将UITableView
带入UIScrollView
现在我想将静态高度设置为tabelview
并将contentSize
设置为ScrollView
,因为UITableView
正在调用每次滚动cellForRowAtIndexPath
时都会tableview
。
我正在使用以下代码动态设置tableviewcell
尺寸。
现在的问题是:如何以及在哪里可以将总高度设置为tableview
,将内容大小设置为scrollview
?
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSMutableDictionary *itemDataDic = [resultArray objectAtIndex:indexPath.row];
UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:15.0];
CGSize constraintSize = CGSizeMake(275.0f, MAXFLOAT);
CGSize labelSize = [[itemDataDic objectForKey:@"offer_title"] sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];
if (labelSize.height > 30.00f)
{
totalHeight = totalHeight + 325;
return 325;
}
else
{
totalHeight = totalHeight + 306;
return 306;
}
}
答案 0 :(得分:1)
'heightForRowAtIndexPath'对于一个单元格被多次调用,因此,以这种方式计算totalHeight是错误的。
您需要在init和数据更改时计算表的高度。
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:22];
答案 1 :(得分:0)
好吧,可能是最糟糕的解决方案是遍历每一行并计算所有行的总高度然后设置它们,如:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:p="http://www.w3org.com"
version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="node()|@*" priority="0">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="p:Response" priority="10">
<xsl:copy>
<xsl:copy-of select="*[local-name()!='Values'] | @*"/>
<p:AllResults REPEATINGTYPE="List">
<p:data>
<xsl:apply-templates select="p:Values"/>
</p:data>
</p:AllResults>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>