2011-07-13 51 views
1

我正在开发一个应用程序,在该应用程序中我使用tableview在单元格中显示图像。我已经给出了一个单元格的大小作为ipad屏幕的大小,并保持当我滚动tableview,它滚动到下一个cell.now我想放大每个单元格,因为我有一个要求。为了实现它,我采用了滚动视图并将其放置在单元格的内容视图上,并将图像放置在滚动视图上。如何在桌面视图中缩放单元格

问题: 我面临的问题是缩放没有在cell上执行,手势委托方法甚至没有被调用。我对此感到惊讶,并开始在网上搜索“我们是否可以放大表格视图中的单元格”,但找不到许多结果。

可以有人建议我,如果有一种方法来放大一个tableview中的小区?我们不能将scrollview放置在tableview单元格中吗?

任何方法被理解。

TNQ

回答

1

我终于在等待几天后回答我自己的问题。正如我在问题中所说的那样,我想放大表格视图的单元格中的内容,而我认为这是不可能的。

我试图将一个滚动视图中的tableview的细胞内,并试图放大,但手势识别无法识别手势,因为它是表视图滚动和滚动型我之间混淆。花费时间Google搜索和我自己的表格视图和滚动经验后,我做出了一个结论,我不能放大表格视图单元格的内容。

i加至的tableview的超级视图(滚动视图是我上海华)分配的捏合姿态解决了我的情况下。只要捏确认我将表视图单元格的内容视图的内容复制到一个视图,并将其添加到超级视图,即滚动视图,从而缩放视图。稍后在执行缩放并缩放到一个之后,我从超级视图中移除视图。

这样我解决了我的情况。

希望这将帮助其他有一个场景像我

TNQ

3

我也面临这个问题。我通过以下途径来解决这个问题: 我已经加入捏合手势识别器的tableView的细胞和应用下面的代码:

- (void)scalePiece:(UIPinchGestureRecognizer *)gestureRecognizer { 

    if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || [gestureRecognizer state] == UIGestureRecognizerStateChanged) { 
     [gestureRecognizer view].transform = CGAffineTransformScale([[gestureRecognizer view] transform], [gestureRecognizer scale], [gestureRecognizer scale]); 
     [gestureRecognizer setScale:1]; 
    } 
    else if ([gestureRecognizer state] == UIGestureRecognizerStateEnded) 
    { 
    if([gestureRecognizer view].transform.b<0 && [gestureRecognizer view].transform.c<1) 
    { 
     [gestureRecognizer view].transform=CGAffineTransformMake(0,-1.0,1.0,0,0,0); 
    } 
    [gestureRecognizer view].transform = CGAffineTransformScale([[gestureRecognizer view] transform], [gestureRecognizer scale], [gestureRecognizer scale]); 
    [gestureRecognizer setScale:1]; 

    } 
} 
0

采用可变

NSInteger的SelectedIndex的

现在把这东西在

- (UITableViewCell *)tableView:(UITableView *)tableView 
    cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    //whatever your code write here 

    if (selectedindex == indexPath.row) { 
     [self animateZoomforCell:cell]; 
    }else 
    { 
     [self animateZoomforCellremove:cell]; 
    } 
    return cell; 
} 

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    //whatever your code write here 

    selectedindex =indexPath.row; 
    [self.tableView reloadData]; 
} 

您可以使用此方法输入/输出单元

-(void)animateZoomforCell:(UITableViewCell*)zoomCell { 
     [UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionCurveEaseOut 
      animations:^{ 

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

    -(void)animateZoomforCellremove:(UITableViewCell*)zoomCell { 
     [UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{ 

     zoomCell.transform = CGAffineTransformMakeScale(1.0,1.0); 
     } 
     completion:^(BOOL finished){ 
     }]; 
     } 
放大
相关问题