如何在uicollectionview中放大单元格的内容

Posted

技术标签:

【中文标题】如何在uicollectionview中放大单元格的内容【英文标题】:How to zoom in the content of cell in uicollectionview 【发布时间】:2016-12-01 11:40:13 【问题描述】:

在上图中,A、B、C、D、E 是集合视图的每个自定义单元格,我想像 c 单元格一样放大单元格。

有什么建议吗?

【问题讨论】:

我猜你应该再有一种自定义单元格来实现缩放效果。 【参考方案1】:

当你的collectionviewcell点击时调用这个方法

[self animateZoomforCell:cell]; // pass cell as collectionviewcell

-(void)animateZoomforCell:(UICollectionViewCell*)zoomCell

    [UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^

        zoomCell.transform = CGAffineTransformMakeScale(1.6,1.6);
     completion:^(BOOL finished)
    ];

-(void)animateZoomforCellremove:(UICollectionViewCell*)zoomCell

    [UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^

        zoomCell.transform = CGAffineTransformMakeScale(1.0,1.0);
     completion:^(BOOL finished)
    ];

【讨论】:

@ParveshSingh 你的问题解决了吗,然后批准我的回答并投票,这样其他用户也可以找到解决方案。谢谢你。快乐编码 @ParveshSingh 您也可以使用此方法缩放 tableviewcell 也只需将 UICollectionViewCell 更改为 UITableviewCell 的一件事【参考方案2】:

swift 3中基于Himanshu Moradiya的解决方案:

 func animateZoomforCell(zoomCell : UICollectionViewCell)

    UIView.animate(
        withDuration: 0.2,
        delay: 0,
        options: UIViewAnimationOptions.curveEaseOut,
        animations: 
                        zoomCell.transform = CGAffineTransform.init(scaleX: 1.2, y: 1.2)
            ,
    completion: nil)

func animateZoomforCellremove(zoomCell : UICollectionViewCell)

    UIView.animate(
        withDuration: 0.2,
        delay: 0,
        options: UIViewAnimationOptions.curveEaseOut,
        animations: 
            zoomCell.transform = CGAffineTransform.init(scaleX: 1.0, y: 1.0)
    ,
        completion: nil)


【讨论】:

以上是关于如何在uicollectionview中放大单元格的内容的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 如何放大 UIButton 的中心?

突出显示或放大选定的单元格?

UICollectionViewCell 内的 CALayer 捏

如何在 iOS 中动态更改 UICollectionView 单元格高度

如何在 willDisplay 单元格回调中访问 UICollectionView 中的特定单元格

如何快速在uicollectionview中动态访问单元格属性