CollectionView水平 - 屏幕外的最后一张图像

时间:2016-09-01 04:47:17

标签: ios objective-c uicollectionview

我正在努力实现在水平仅1xN的集合视图上从相机/图库上传最多五个图像。但是,当我有超过3张图像时,最后的图像显示不正确,部分可见。

在下图中,请注意相机图标,该图标部分在屏幕外。我正在测试iPhone 5s。

我已将此小项目放在以下存储库中:https://github.com/texas16/CameraCollectionView

enter image description here

1 个答案:

答案 0 :(得分:2)

我已经检查了你的项目,在这个方法中

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

您的问题是您使用过“<”

 [aBlockSelf.arrayOfImages replaceObjectAtIndex:self.selectedPath.row withObject:chosenImage];
    if([aBlockSelf.arrayOfImages count] < NUMBER_OF_IMAGES)
    {
        [aBlockSelf.arrayOfImages addObject:[UIImage imageNamed:@"photo.png"]];
    }

但这就是为什么相机图像不会出现在最后一个单元格中,所以你必须使用“&lt; =”

[aBlockSelf.arrayOfImages replaceObjectAtIndex:self.selectedPath.row withObject:chosenImage];
    if([aBlockSelf.arrayOfImages count] <= NUMBER_OF_IMAGES) // use <=
    {
        [aBlockSelf.arrayOfImages addObject:[UIImage imageNamed:@"photo.png"]];
    }

并且您还没有设置约束,否则如果您不想使用autoLayout,则需要使用自动调整大小

Check this example (Using Autolayout)

5s截图

enter image description here

使用自动调整大小

enter image description here