【第22期】观点:IT 行业加班,到底有没有价值?

动态改变tableCell的高度

原创 2016年06月01日 14:16:56
//动态设置cell的高度

+ (CGFloat)heightForRowWithModel:(PhotoInfo *)photoInfo
{
    //1.图片的高度
    //让图片等比例缩放
    //(1)获取图片
    UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"ZZ" ofType:@"png"]];
    CGFloat imageHeight = [self heightForImage:image];
    //2.文本的高度
    CGFloat textHeight = [self heightForText:photoInfo.introduction];
    //3.返回cell 的总高度
    return kPhotoCell_TitleLabel_Height + imageHeight + textHeight + 4 * kPhotoCell_MarginBetween;
}
//单独计算图片的高度
+ (CGFloat)heightForImage:(UIImage *)image
{
    //(2)获取图片的大小
    CGSize size = image.size;
    //(3)求出缩放比例
    CGFloat scale = kPhotoCell_Width / size.width;
    CGFloat imageHeight = size.height * scale;
    return imageHeight;
}
//单独计算文本的高度
+ (CGFloat)heightForText:(NSString *)text
{
    //设置计算文本时字体的大小,以什么标准来计算
    NSDictionary *attrbute = @{NSFontAttributeName:[UIFont systemFontOfSize:kFontSize]};
    return [text boundingRectWithSize:CGSizeMake(kPhotoCell_Width, 1000) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:attrbute context:nil].size.height;
}

创建一个UICollectionView 的方式:
//声明布局方式

UICollectionViewFlowLayout*layout=[[UICollectionViewFlowLayoutalloc]init];

//设置对齐方式

[layoutsetScrollDirection:UICollectionViewScrollDirectionVertical];

//设置cell间距

layout.minimumInteritemSpacing=2;

//设置cell行距

layout.minimumLineSpacing=2;

//设置头视图的大小

//layout.headerReferenceSize=CGSizeMake(320.0, 150.0);

_collec=[[UICollectionViewalloc]initWithFrame:CGRectMake(0.0,214.0,W,H)collectionViewLayout:layout];

_collec.delegate=self;

_collec.dataSource=self;

_collec.backgroundColor=[UIColorwhiteColor];

_collec.tag=100;

[self.viewaddSubview:_collec];

//注册表格单元格

[_collecregisterNib:[UINibnibWithNibName:@"ZuoPinCell"bundle:nil]forCellWithReuseIdentifier:@"zuopinCell"];

//注册collection头视图

[_collecregisterClass:[UICollectionReusableViewclass]forSupplementaryViewOfKind:UICollectionElementKindSectionHeaderwithReuseIdentifier:@"header"];

实现头视图协议方式:


//实现头视图

//提供头视图的大小

- (CGSize)collectionView:(UICollectionView*)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section{

returnCGSizeMake(320.0,50.0);

}

//获取头视图的方法

- (UICollectionReusableView*)collectionView:(UICollectionView*)collectionView viewForSupplementaryElementOfKind:(NSString*)kind atIndexPath:(NSIndexPath*)indexPath{

//创建UICollectionReusableView视图

UICollectionReusableView*header;

if([kindisEqualToString:UICollectionElementKindSectionHeader]) {

header=[collectionViewdequeueReusableSupplementaryViewOfKind:kindwithReuseIdentifier:@"header"forIndexPath:indexPath];

//添加头视图内容

[selfaddBtn];

//头视图添加view

[headeraddSubview:_btn];

}

returnheader;

}

//collection头视图

- (void)addBtn{

UIButton*btn=[UIButtonbuttonWithType:UIButtonTypeCustom];

btn.frame=CGRectMake(0.0,0,320.0,50.0);

[btnsetTitle:@"上传+作品"forState:UIControlStateNormal];

btn.backgroundColor=[UIColorbrownColor];

[btnaddTarget:selfaction:@selector(handleWorkUp)forControlEvents:UIControlEventTouchUpInside];

[self.viewaddSubview:btn];

_btn=btn;

}
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

布局配合动画的使用 动态改变布局的高度

一个布局想要一个动态上移或者下滑的动画   我想接下来的代码可能会帮助到你 如果一个LinearLayout想要整体往下移动这时你要在它的上面写上一个view,随便什么view都可以设置它的id ...

【微信小程序教程】动态改变view标签的宽度和高度

【微信小程序教程】动态改变view标签的宽度和高度

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

动态改变UITableView中的Cell高度

往往在开发iPhone的应用过程中用得最多的应该算是UITableVIew了,凭着IOS给UITableView赋予了这种灵活的框架结构,让它不 管在显示列表方面还是在排版方面都有着一定的优势。虽然UITableView功能强大,但是对于一些复杂的应用需求在开发的过程中会出现一些问题,如动 态改...

JS动态改变iframe的高度

在数飞OA的开发过程中,遇到问题:一个jsp页面嵌套一个html页面。 〈iframe id="docDetail" width="100%"  height="200"         fr...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)