iOS UIImageView 网络加载图片自适应大小问题
2015-12-02 19:46
716 查看
#pragma mark - /////// //图片部分
for (int i =
0; i < [_imageArray
count]; i++) {
UIImageView * imageV = (UIImageView *)[_imageArray
objectAtIndex:i];
if (imageV.superview) {
[imageV removeFromSuperview];
}
}
[_imageArray
removeAllObjects];
//自定义图片高度
CGFloat showImageH ;
for (int i =
0; i < [ymData.showImageArray
count]; i++) {
//假定图片的高就是80了ShowImage_H----kDistance 20 //说说和图片的间隔---#define
TableHeader 50
//自己改的
showImageH = 80;//(IPHONE_WIDTH - 50)/3;
UIImageView *imageView = [[UIImageView
alloc]initWithFrame:CGRectMake(20 +
5*(i%3) + showImageH*(i%3),
TableHeader - 3 +
5 * ((i/3) +
1) + (i/3) * showImageH + hhhh +
kDistance + (ymData.islessLimit?0:30), showImageH, showImageH)];
imageView.contentMode =
UIViewContentModeScaleToFill;
// UIImageView *image = [[UIImageView alloc] initWithFrame:CGRectMake(((screenWidth - 240)/4)*(i%3 + 1) + 80*(i%3), TableHeader + 10 * ((i/3) + 1) + (i/3) * ShowImage_H + hhhh + kDistance + (ymData.islessLimit?0:30), 80, ShowImage_H)];
imageView.userInteractionEnabled =
YES;
YMTapGestureRecongnizer *tap = [[YMTapGestureRecongnizer
alloc]
initWithTarget:self
action:@selector(tapImageView:)];
[imageView addGestureRecognizer:tap];
tap.appendArray = ymData.showImageArray;
imageView.backgroundColor = [UIColor
clearColor];
imageView.tag =
kImageTag + i;
// image.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@",[ymData.showImageArray objectAtIndex:i]]];
NSString *imgStr = [[ymData.showImageArray
objectAtIndex:i] stringByReplacingOccurrencesOfString:@"."
withString:@"."];
NSString *imgStr_S = [imgStr
stringByReplacingOccurrencesOfString:@"."
withString:@"_s."];
NSString *urlStr_S = [NSString
stringWithFormat:KimgUrl@"dynamic/%@",imgStr_S];
NSLog(@"-------朋友圈-
缩略图 -images-----:urlStr------%@",urlStr_S);
// UIImage *placeholder = [UIImage imageNamed:@"hstp"];
// NSString *urlStr = [NSString stringWithFormat:KimgUrl@"dynamic/%@",imgStr];
// [image setImageURLStr:urlStr placeholder:placeholder];
__block UIActivityIndicatorView *activityIndicator;
[imageView sd_setImageWithURL:[NSURL
URLWithString:urlStr_S]
placeholderImage:[UIImage
imageNamed:@"mrbg1"]
options:SDWebImageProgressiveDownload
progress:^(NSInteger receivedSize,
NSInteger expectedSize) {
if (!activityIndicator)
{
activityIndicator = [[UIActivityIndicatorView
alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
activityIndicator.center = imageView.center;
//把更新UI放到主线程
dispatch_async(dispatch_get_main_queue(), ^{
[imageView addSubview:activityIndicator];
});
[activityIndicator startAnimating];
}
} completed:^(UIImage *image,
NSError *error, SDImageCacheType cacheType,
NSURL *imageURL) {
float a = image.size.width;
float b = image.size.height;
NSLog(@"----width--%f----height--%f-------",a,b);
if ([ymData.showImageArray
count] == 1) {
// [imageView sizeToFit];
imageView.frame =
CGRectMake(20 +
5*(i%3) + showImageH*(i%3),
TableHeader - 3 +
5 * ((i/3) +
1) + (i/3) * showImageH + hhhh +
kDistance + (ymData.islessLimit?0:30), a/4, b/4);
// showImageH = imageView.frame.size.height;
_ShowImage_HH =
150;//600/4;
}else{
_ShowImage_HH =
80;
}
//改变图片的显示方式-----让它不压缩,部分显示
[activityIndicator stopAnimating];
}];
//
// NSLog(@"------image--- cell ---
尺寸-----%@",NSStringFromCGSize(image.image.size));
//
//
//
// NSURL *url_S = [NSURL URLWithString:urlStr_S];
// NSData *resultData_S = [NSData dataWithContentsOfURL:url_S];
// NSLog(@"------cell-图片大小_S--------%lu",(unsigned long)[resultData_S length]);
// UIImage *img_S = [UIImage imageWithData:resultData_S];
// NSLog(@"------cell--图片尺寸_S-------%@",NSStringFromCGSize(img_S.size));
//
[self.contentView
addSubview:imageView];
[_imageArray
addObject:imageView];
}
for (int i =
0; i < [_imageArray
count]; i++) {
UIImageView * imageV = (UIImageView *)[_imageArray
objectAtIndex:i];
if (imageV.superview) {
[imageV removeFromSuperview];
}
}
[_imageArray
removeAllObjects];
//自定义图片高度
CGFloat showImageH ;
for (int i =
0; i < [ymData.showImageArray
count]; i++) {
//假定图片的高就是80了ShowImage_H----kDistance 20 //说说和图片的间隔---#define
TableHeader 50
//自己改的
showImageH = 80;//(IPHONE_WIDTH - 50)/3;
UIImageView *imageView = [[UIImageView
alloc]initWithFrame:CGRectMake(20 +
5*(i%3) + showImageH*(i%3),
TableHeader - 3 +
5 * ((i/3) +
1) + (i/3) * showImageH + hhhh +
kDistance + (ymData.islessLimit?0:30), showImageH, showImageH)];
imageView.contentMode =
UIViewContentModeScaleToFill;
// UIImageView *image = [[UIImageView alloc] initWithFrame:CGRectMake(((screenWidth - 240)/4)*(i%3 + 1) + 80*(i%3), TableHeader + 10 * ((i/3) + 1) + (i/3) * ShowImage_H + hhhh + kDistance + (ymData.islessLimit?0:30), 80, ShowImage_H)];
imageView.userInteractionEnabled =
YES;
YMTapGestureRecongnizer *tap = [[YMTapGestureRecongnizer
alloc]
initWithTarget:self
action:@selector(tapImageView:)];
[imageView addGestureRecognizer:tap];
tap.appendArray = ymData.showImageArray;
imageView.backgroundColor = [UIColor
clearColor];
imageView.tag =
kImageTag + i;
// image.image = [UIImage imageNamed:[NSString stringWithFormat:@"%@",[ymData.showImageArray objectAtIndex:i]]];
NSString *imgStr = [[ymData.showImageArray
objectAtIndex:i] stringByReplacingOccurrencesOfString:@"."
withString:@"."];
NSString *imgStr_S = [imgStr
stringByReplacingOccurrencesOfString:@"."
withString:@"_s."];
NSString *urlStr_S = [NSString
stringWithFormat:KimgUrl@"dynamic/%@",imgStr_S];
NSLog(@"-------朋友圈-
缩略图 -images-----:urlStr------%@",urlStr_S);
// UIImage *placeholder = [UIImage imageNamed:@"hstp"];
// NSString *urlStr = [NSString stringWithFormat:KimgUrl@"dynamic/%@",imgStr];
// [image setImageURLStr:urlStr placeholder:placeholder];
__block UIActivityIndicatorView *activityIndicator;
[imageView sd_setImageWithURL:[NSURL
URLWithString:urlStr_S]
placeholderImage:[UIImage
imageNamed:@"mrbg1"]
options:SDWebImageProgressiveDownload
progress:^(NSInteger receivedSize,
NSInteger expectedSize) {
if (!activityIndicator)
{
activityIndicator = [[UIActivityIndicatorView
alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
activityIndicator.center = imageView.center;
//把更新UI放到主线程
dispatch_async(dispatch_get_main_queue(), ^{
[imageView addSubview:activityIndicator];
});
[activityIndicator startAnimating];
}
} completed:^(UIImage *image,
NSError *error, SDImageCacheType cacheType,
NSURL *imageURL) {
float a = image.size.width;
float b = image.size.height;
NSLog(@"----width--%f----height--%f-------",a,b);
if ([ymData.showImageArray
count] == 1) {
// [imageView sizeToFit];
imageView.frame =
CGRectMake(20 +
5*(i%3) + showImageH*(i%3),
TableHeader - 3 +
5 * ((i/3) +
1) + (i/3) * showImageH + hhhh +
kDistance + (ymData.islessLimit?0:30), a/4, b/4);
// showImageH = imageView.frame.size.height;
_ShowImage_HH =
150;//600/4;
}else{
_ShowImage_HH =
80;
}
//改变图片的显示方式-----让它不压缩,部分显示
[activityIndicator stopAnimating];
}];
//
// NSLog(@"------image--- cell ---
尺寸-----%@",NSStringFromCGSize(image.image.size));
//
//
//
// NSURL *url_S = [NSURL URLWithString:urlStr_S];
// NSData *resultData_S = [NSData dataWithContentsOfURL:url_S];
// NSLog(@"------cell-图片大小_S--------%lu",(unsigned long)[resultData_S length]);
// UIImage *img_S = [UIImage imageWithData:resultData_S];
// NSLog(@"------cell--图片尺寸_S-------%@",NSStringFromCGSize(img_S.size));
//
[self.contentView
addSubview:imageView];
[_imageArray
addObject:imageView];
}
相关文章推荐
- HTTP Analyzer过滤器使用
- Android中开辟线程(下载-网络连接)
- [国嵌攻略][068][tftp网络协议实现]
- 【python】网络编程-TCP协议套接字
- 推荐一些C#相关的网站、资源和书籍 (转载自http://www.cnblogs.com/jiangxiaofan/p/3808316.html)
- 【python】网络编程-套接字常用函数
- Http、TCP/IP协议与Socket之间的区别
- AFN(上传、下载)
- 服务器搭建时报错:HTTP 错误 404.2
- c#使用HttpWebRequest上传文件同时携带其他参数
- Ubuntu12.10编译MPTCP
- 第二章 OSI参考模型和TCP/IP模型(续)
- 【图解HTTP】第一章 了解web及网络基础
- (转)tcp和udp能否发送0字节的数据包
- 网络模拟工具
- 【网络爬虫】数据的采集——Heritrix1.x的配置过程
- 各种HTTP返回错误代码大全 HTTP 403 Forbidden / 404 Not Found / 500 Internal Server Error / 502 Bad Gateway / 50
- Nginx httpS server配置
- VMware下打开Chrome OS遇到没有网络连接可用
- 神经网络(10)--有助于对神经网络Backpropagation算法的理解