图像适合UICollectionView Cell

时间:2015-10-21 17:49:32

标签: ios objective-c uicollectionview

我正在使用collectionview来显示我从服务器获取的产品。但是图像不适合collectionview单元格。我想知道有没有办法解决它?

NSURL *url = [NSURL URLWithString:@"http://www.myURL/productAll.php"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
    NSError *myError = nil;
    id res = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&myError];        
    items = [[NSMutableArray alloc] init];
    for (int i=0; i<[res count]; i++) {
        NSString *arrayResult = [[res objectAtIndex:i]objectForKey:@"image"];            
        NSData *data = [[NSData alloc] initWithBase64EncodedString:arrayResult options:NSDataBase64DecodingIgnoreUnknownCharacters];
        UIImage *captcha_image = [[UIImage alloc] initWithData:data];
        [items addObject:captcha_image];
    }
    [collectionView reloadData];
}];

以下是collectionView单元格设计,imageView维度与collectionView单元格匹配。 enter image description here

以下是用户看到的内容:

enter image description here

以下是来自ImageView

的额外信息

enter image description here

enter image description here

cellCollectionView

enter image description here

2 个答案:

答案 0 :(得分:4)

首先,现代Apple设备有各种尺寸。当你只设计一个屏幕时,它不再是2010年了。转到Autolayout 其次,在下面您可以找到有关如何进行所有正确设置的非常详细的说明

  1. 点击图片视图
  2. 点击图钉约束按钮
  3. 放下常数(与边距相同)并选择/突出显示红色连接器框到数字
  4. 取消选中“对边距的约束”复选框
  5. 点击添加4约束按钮
  6. 确保您的图像查看模式是Aspect Fill
  7. 不要忘记检查重要的“剪辑子视图”复选框,除非您将看到彼此放大的图像
  8. Detailed explanation for adding constants

    Detailed explanation for Image View setup

答案 1 :(得分:0)

永远不要使用框架。

2015年,使用autolayout。

创建您的经典自定义单元格,在其中放置一个imageview,并将其顶部,左侧,右侧和底部约束放置到实际单元格的边缘。

不要忘记将插座图像视图链接到.h文件,并在创建单元格时设置图像。

热潮,你很高兴,你的形象将永远填满细胞的空间。

如果您有圆角,则可能需要在单元格上将剪辑子视图设置为true。

在您的情况下,如果您的单元格与原始单元格中的图像视图具有完全相同的大小,那么只需在单元格中显示图像视图就可以没有约束,当然,您的imageview将占用整个原始单元格。