ios根据约束计算行高

使用场景

有时候我们给一个View设置好底部自适应的约束后,并且在cell的header中,headerView的高度是由数据源方法决定的。所以我们必须在返回高度的这个方法里面,得到headerView的高度

代码如下

/// 传入你要计算的View的行高
-(CGFloat)contentViewFittingSize:(UIView*)contentView
{
    // 获得父容器的宽度,我这里是获取控制器View的宽度
    CGFloat contentViewWidth = CGRectGetWidth(self.view.frame);
    // 新建一个宽度约束
    NSLayoutConstraint *widthFenceConstraint = [NSLayoutConstraint constraintWithItem:contentView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute m
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JasperReport是一款强大的报表工具,可以通过使用它提供的各种组件和API轻松创建复杂的报表。如果您想根据内容动态调整报表行高,可以尝试以下步骤: 1. 在报表设计中设置每个元素的"Stretch Type"属性为"Relative to Tallest Object"。 2. 在"Print When Expression"属性中添加一个计算行高所需的表达式。 3. 在报表生成时,通过编程方式计算每个元素的高度,并将其设置为相应的行高。 以下是一个示例代码片段,演示如何在JasperReport中动态调整行高: ``` // 获取报表对象 JasperReport jasperReport = JasperCompileManager.compileReport("report.jrxml"); // 准备数据源 JRDataSource dataSource = new JRBeanCollectionDataSource(data); // 准备参数 Map<String, Object> parameters = new HashMap<>(); parameters.put("ReportTitle", "My Report"); // 编译报表 JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, dataSource); // 获取报表中的所有元素 JRPrintElement[] elements = jasperPrint.getPages()[0].getElements(); // 遍历每个元素,计算其高度并设置行高 for (JRPrintElement element : elements) { // 计算元素高度 float height = element.getPreferredHeight(); // 设置行高 element.setHeight(new Float(height)); } // 导出报表 JasperExportManager.exportReportToPdfFile(jasperPrint, "report.pdf"); ``` 请注意,这只是一个简单的示例,具体实现可能因为您的具体需求而略有不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值