我现在正在做瀑布流的相关项目,但是服务器没返回图片的高度,图片展示的时候压缩变形了,怎么样才能解决这个问题,调用的图片的高度的方法如下:
- (CGFloat)flowView:(LLWaterFlowView *)flowView heightForRowAtIndexPath:(NSIndexPath *)indexPath image:(UIImage *)image
{
float height;
NSLog(@"---------image.size.height--------%f",image.size.height);
if ([self.imageArray count]==0) {
return0;
}else {
int arrCount=[self.imageArray count];
int index=indexPath.row + indexPath.section+2*indexPath.row;
if (arrCount>index) {
//创建放置图片的文件夹
NSString*thePath=[NSTemporaryDirectory() stringByAppendingPathComponent:[NSStringstringWithFormat:@"tmpee%d.png",index]];
NSData*imgData=nil;
//创建文件管理者
NSFileManager*fm=[NSFileManagerdefaultManager];
if ([fm fileExistsAtPath:thePath]) {
imgData=[NSData dataWithContentsOfFile:thePath];
}else{
imgData=[NSDatadataWithContentsOfURL:[NSURLURLWithString:[NSStringstringWithFormat:[[self.imageArrayobjectAtIndex:indexPath.row*3+indexPath.section]objectForKey:@"sspicture"]]]];
[imgData writeToFile:thePath atomically:YES];
}
image=[UIImage imageWithData:imgData];
switch (indexPath.section) {
case 0:
height=100*image.size.height/image.size.width+5;
break;
case 1:
height=100*image.size.height/image.size.width+5;
break;
case 2:
height=100*image.size.height/image.size.width+5;
break;
default:
break;
}
}
}
NSLog(@"-----------height-------%f",height);
return height;
跪求大侠指点!!!
如果块宽度是固定的,给<img>标签设置固定的width,不要设置height,他会自动等比列显示。
这个宽度是固定的,但是在瀑布流项目中,UIImageView的高度是一点要设置的,要不图片显示不了的,现在纠结的问题就是:我怎样才能让UIImageView的高度随着图片的高度的改变而改变呢?因为只有这样,图片才不会变形的!
@天涯爱芳草: 原来你是做瀑布流布局,跟我之前遇到的一样,我是在上传图片的时候 把width和height存入数据库,提取的时候并不马上显示图片,但是要根据height先把每块的高度计算出来,这样呈现的时候才能正常
@.!: 但是怎么计算图片的高度呀,我现在是后台不给返回高度