Animation 触摸滚动动画,查看iOS中的图像列表

Animation 触摸滚动动画,查看iOS中的图像列表,animation,ios6,uiscrollview,uiimageview,uianimation,Animation,Ios6,Uiscrollview,Uiimageview,Uianimation,我的要求是以水平方式显示图像列表。当我触摸图像时,它会移到一边,下一个图像会移到前面。这样,我需要并排移动图像。那么有没有方法滚动图像列表?或者我可以选择任何类型的动画 这样可以放置和移动图像。请建议我如何继续?我解决了这个问题。我在这个链接中找到了示例。我创建了一个封面流程的工作模块 尝试在允许使用…进行三维变换的图层上进行变换 -(void) rotateView3D:(UIView *)myView:(CGFloat)angle { CATransform3D affinAndS

我的要求是以水平方式显示图像列表。当我触摸图像时,它会移到一边,下一个图像会移到前面。这样,我需要并排移动图像。那么有没有方法滚动图像列表?或者我可以选择任何类型的动画


这样可以放置和移动图像。请建议我如何继续?

我解决了这个问题。我在这个链接中找到了示例。

我创建了一个封面流程的工作模块

尝试在允许使用…进行三维变换的图层上进行变换

-(void) rotateView3D:(UIView *)myView:(CGFloat)angle
{

    CATransform3D affinAndScaleTransform;
    if (angle==30.0f||angle==-30.0f)
    {
        affinAndScaleTransform = CATransform3DMakeAffineTransform(CGAffineTransformMakeScale(0.9f, 0.9f));
    }
    else
    {
        affinAndScaleTransform = CATransform3DMakeAffineTransform(CGAffineTransformMakeScale(1.0f, 1.0f));
    }
    CALayer *layer = myView.layer;

//    layer.borderColor = [[UIColor blackColor] CGColor];
//    layer.borderWidth = 2.0f;
    CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;

    rotationAndPerspectiveTransform.m34 = 1.0 / -500;
    rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, angle * M_PI / 180.0f, 0.0f, 1.0f, 0.0f);
    [layer setTransform:CATransform3DConcat(rotationAndPerspectiveTransform, affinAndScaleTransform)];
}
要滚动视图,请添加手势

对于左撇子手势,请使用以下内容

{
    UIView * view0 = [self.view viewWithTag:-1111];
    UIView * view1 = [self.view viewWithTag:1111];
    UIView * view2 = [self.view viewWithTag:2222];
    UIView * view3 = [self.view viewWithTag:3333];
    UIView * view4 = [self.view viewWithTag:4444];

    [view4 setFrame:self.rect0];

    int preViewNo = self.leftProduct-1;
    if (preViewNo<0)preViewNo=self.productArray.count-1;

    [UIView animateWithDuration:0.4 animations:^
     {
         [view0 setFrame:self.rect1];
         [self rotateView3D:view0 : 30.0f];

         [view1 setFrame:self.rect2];
         [self rotateView3D:view1 : 0.0f];

         [view2 setFrame:self.rect3];
         [self rotateView3D:view2 : -30.0f];

         [view3 setFrame:self.rect4];
         [self rotateView3D:view4 : 0.0f];

     }];

    [self setdescriptionView:view0 :[self.productArray objectAtIndex:preViewNo]];

    [view0 setTag:1111];
    [view1 setTag:2222];
    [view2 setTag:3333];
    [view3 setTag:4444];
    [view4 setTag:-1111];

    self.currentProduct--;
    self.rightProduct--;
    self.leftProduct--;
    if (self.currentProduct < 0) self.currentProduct=self.productArray.count-1;
    if (self.rightProduct < 0) self.rightProduct=self.productArray.count-1;
    if (self.leftProduct < 0) self.leftProduct=self.productArray.count-1;


}
由于某些技术原因,我必须定制coverflow

你也可以试试这个


谢谢你,Nirav,是的,我试过icarousal。但实际上我的要求是显示封面流程的表格视图,而不是图像视图。所以我只是通过设置标签和按钮来尝试。效果很好。但我不明白我必须在何处编写设置按钮目标的代码。请给我建议。亲爱的Rani,非常欢迎,我遇到了类似的问题,我需要在coverflow中显示UIView。这些UIView包含imageview和一些标签,因此我制作了这个自定义封面流程。在这里,我发布了定制coverflow的示例代码。使用此自定义coverflow,您可以执行任何操作。此coverflow使用uiview而不是UIImageview,因此您可以放置所需的任何控件。如果您在使用此代码时遇到任何问题,请随时询问。。
{
    UIView * view0 = [self.view viewWithTag:-1111];
    UIView * view1 = [self.view viewWithTag:1111];
    UIView * view2 = [self.view viewWithTag:2222];
    UIView * view3 = [self.view viewWithTag:3333];
    UIView * view4 = [self.view viewWithTag:4444];

    [view0 setFrame:self.rect4];

    int nextViewNo = self.rightProduct+1;
    if (nextViewNo>=self.productArray.count)nextViewNo=0;

    [UIView animateWithDuration:0.4 animations:^
     {
         [view4 setFrame:self.rect3];
         [self rotateView3D:view4 : -30.0f];

         [view3 setFrame:self.rect2];
         [self rotateView3D:view3 : 0.0f];

         [view2 setFrame:self.rect1];
         [self rotateView3D:view2 : 30.0f];

         [view1 setFrame:self.rect0];
         [self rotateView3D:view1 : 0.0f];

     }];

    [self setdescriptionView:view4 :[self.productArray objectAtIndex:nextViewNo]];

    [view0 setTag:4444];
    [view1 setTag:-1111];
    [view2 setTag:1111];
    [view3 setTag:2222];
    [view4 setTag:3333];

    self.currentProduct++;
    self.rightProduct++;
    self.leftProduct++;
    if (self.currentProduct >= self.productArray.count) self.currentProduct=0;
    if (self.rightProduct >= self.productArray.count) self.rightProduct=0;
    if (self.leftProduct >= self.productArray.count) self.leftProduct=0;
}