0

我有一個UICollectionView與大量的細胞內(約5K +)。我想捏縮放放大。我已經嘗試過每一次捏invalidateLayout。這真的很慢。所以我想用CGAffineTransformMakeScale,但是我不知道如何在這之後滾動。 我的代碼是:縮放通過捏手勢的UICollectionView

- (void)didReceivePinchGesture:(UIPinchGestureRecognizer *)gesture { 
static CGFloat scaleStart; 

if (gesture.state == UIGestureRecognizerStateBegan) { 
    scaleStart = self.venueLayoutZoom; 
} 
else if (gesture.state == UIGestureRecognizerStateChanged) { 
    CGAffineTransform transform = CGAffineTransformMakeScale(self.venueLayoutZoom, self.venueLayoutZoom); 
    self.activeCollectionNode.view.transform = transform; 
    self.activeCollectionNode.view.contentSize = CGSizeMake(318 * self.venueLayoutZoom, 500 * self.venueLayoutZoom); 
} 
} 

但在我被放大時,不能左右滾動。幫幫我。

+0

@ReinierMelian謝謝,我已經試過這一點。它沒有幫助 –

+0

你可以把你的collectionView裏面的UIScrollView,並使其不可滾動嗎? –

+0

@ReinierMelian你是什麼意思? –

回答

0

使用您的回覆

@interface ViewController() <UICollectionViewDataSource, 
UICollectionViewDelegate, UICollectionViewDelegateFlowLayout> 

@property (nonatomic,assign) CGFloat scale; 
@property (nonatomic,weak) IBOutlet UICollectionView *collectionView; 

@end 

@implementation ViewController 
- (void)viewDidLoad 
{ 
[super viewDidLoad]; 

self.scale = 1.0; 

[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cell"]; 

UIPinchGestureRecognizer *gesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(didReceivePinchGesture:)]; 
[self.collectionView addGestureRecognizer:gesture]; 

} 

- (CGSize)collectionView:(UICollectionView *)collectionView layout: 
(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath: 
(NSIndexPath *)indexPath 
    { 
    return CGSizeMake(50*self.scale, 50*self.scale); 
    } 

    - (void)didReceivePinchGesture:(UIPinchGestureRecognizer*)gesture 
    { 
    static CGFloat scaleStart; 

    if (gesture.state == UIGestureRecognizerStateBegan) 
    { 
    scaleStart = self.scale; 
    } 
    else if (gesture.state == UIGestureRecognizerStateChanged) 
    { 
    self.scale = scaleStart * gesture.scale; 
    [self.collectionView.collectionViewLayout invalidateLayout]; 
    } 
    } 
+0

你能讀我的問題嗎?我已經說過了 –