在UITableViewCell本身或其contentView上缩放动画

时间:2019-04-15 13:51:01

标签: ios swift xcode uitableview

我想要实现类似于Appstore的动画,在其中单击该项目,然后将该项目缩放到较小的大小,然后释放该项目,它将恢复到其原始大小。

UIView上缩放动画效果很好。 首先,如果我对UITableviewCell本身执行相同的缩放动画,那么我得到了想要的动画,但是它在后面创建了彩色背景,这不是我想要的结果。 其次,如果我在contentView的{​​{1}}上执行相同的动画,则会使动画混乱。这不是我期望的。

1。在contentView上

UITableviewCell

2。On Cell本身

func tableView(_ tableView: UITableView, didHighlightRowAt indexPath: IndexPath) {
        debugPrint("did hightlight")
        let cell = tableView.cellForRow(at: indexPath) as? RestaurantTVC
        UIView.animate(withDuration: 0.75) {
            cell?.contentView.transform = CGAffineTransform(scaleX: 0.9, y: 0.9)
        }
    }

    func tableView(_ tableView: UITableView, didUnhighlightRowAt indexPath: IndexPath) {
        debugPrint("unhightlight")
        let cell = tableView.cellForRow(at: indexPath) as? RestaurantTVC
        UIView.animate(withDuration: 0.3) {
             cell?.contentView.transform = CGAffineTransform.identity
        }
    }

3。在子视图“ viewShadow”上


func tableView(_ tableView: UITableView, didHighlightRowAt indexPath: IndexPath) {
        debugPrint("did hightlight")
        let cell = tableView.cellForRow(at: indexPath) as? RestaurantTVC
        UIView.animate(withDuration: 0.75) {
            cell?.transform = CGAffineTransform(scaleX: 0.9, y: 0.9)
        }
    }

    func tableView(_ tableView: UITableView, didUnhighlightRowAt indexPath: IndexPath) {
        debugPrint("unhightlight")
        let cell = tableView.cellForRow(at: indexPath) as? RestaurantTVC
        UIView.animate(withDuration: 0.3) {
             cell?.transform = CGAffineTransform.identity
        }
    }

0 个答案:

没有答案