UICollectionView-添加自定义交互(如手势等)

本文介绍如何使用UICollectionViewFlowLayout和UIPinchGestureRecognizer实现UICollectionView中的图片缩放功能。通过监听手势变化,调整UICollectionView中项目的尺寸,实现了流畅的缩放效果。
摘要由CSDN通过智能技术生成

1。相关方法

     - (void)invalidateLayout   // 刷新布局

e.g. 

- (void) handlePinches:(UIPinchGestureRecognizer *)paramSender{

    CGSize DefaultLayoutItemSize = CGSizeMake(80.0f, 120.0f);   //这是原先设置的默认的尺寸大小,这里每次缩放都是以默认尺寸为基数
    UICollectionViewFlowLayout *layout =  (UICollectionViewFlowLayout *)self.collectionView.collectionViewLayout;
    layout.itemSize =  CGSizeMake(DefaultLayoutItemSize.width * paramSender.scale, DefaultLayoutItemSize.height * paramSender.scale);
    [layout invalidateLayout];   //废弃旧布局,更新新布局

- (void) viewDidLoad{
    [super viewDidLoad];
    self.collectionView.backgroundColor = [UIColor whiteColor];
    UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self  action:@selector(handlePinches:)];
    for (UIGestureRecognizer *recognizer in  self.collectionView.gestureRecognizers){
        if ([recognizer isKindOfClass:[pinch class]]){
            [recognizer requireGestureRecognizerToFail:pinch];   //此处使用是为了确保各缩放手势保持独立,不会混淆

            // [aGesture requireGestureRecognizerToFail: bTapGesture];   //b手势无效后,才能承认a手势(如双击无效后才承认单击等,确保不混淆手势)

        }
    }
    [self.collectionView addGestureRecognizer:pinch];
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值