如何只放大/缩小表视图的任何一个特定单元而不是整个表?

时间:2012-03-22 12:11:32

标签: iphone ipad uitableview uipinchgesturerecognizer

我只想放大/缩小表视图的任何一个特定行/单元而不是整个表。 我已经使用了捏合手势,但它不能在桌面上运行它在整个桌子上工作。

我需要一次缩放一个单元格,当我想缩放第二个单元格frist单元格时自动调整大小?

请帮帮我。

提前致谢。

5 个答案:

答案 0 :(得分:4)

您可以尝试以下代码:

    // For Zoom  in 
    CGAffineTransform trans = CGAffineTransformScale(cell.contentView.transform, 100, 100);
    view.transform = trans;

   // For Zoom Out
   CGAffineTransform trans = CGAffineTransformScale(cell.contentView.transform, 0.01, 0.01);
   view.transform = trans;

您可以在didSelectRowAtIndexPath方法上使用此功能。

didSelectRowAtIndexPath:下写下以下代码以获取所选的cell

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];

现在您已获得cell

答案 1 :(得分:0)

您是否尝试过在

中编写@Devang答案代码?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

希望这有帮助。

答案 2 :(得分: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){
      }]; 
      }

答案 3 :(得分:0)

你可以这样做:

caffe.Layer

请将CollectionViewCell替换为您的。我用UICollectionView实现了它,但它与UITableView也一样。

答案 4 :(得分:0)

Swift 5

免责声明:它将缩放整个tableView内容。 若要缩小,请使用与转换比例值相同的1作为重复值。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        
        let cell = tableView.cellForRow(at: indexPath) as! YourCellName
    
        let zoomView = cell.contentView.transform.scaledBy(x: 2, y: 2)
                view.transform = zoomView
        }

    }