我只想放大/缩小表视图的任何一个特定行/单元而不是整个表。 我已经使用了捏合手势,但它不能在桌面上运行它在整个桌子上工作。
我需要一次缩放一个单元格,当我想缩放第二个单元格frist单元格时自动调整大小?
请帮帮我。
提前致谢。
答案 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
}
}