简体   繁体   English

如何在swift4中为图库从底部到顶部设置动画

[英]How to animate a view from bottom to top for gallery in swift4

First time I am trying to do animation. 我第一次尝试做动画。 Here my task is collection of images should animate from bottom. 在这里,我的任务是图像的集合应该从底部动画。 I am trying to follow this link . 我正在尝试关注此链接 In this example, wow the images are animating from bottom to top, that's what how I want. 在这个例子中,哇图像是从下到上的动画,这就是我想要的。 What ever I have tried, it's given below.and I am getting an error like 我曾尝试过,下面给出了。我得到的错误就像

Cannot invoke 'visibleCells' with no arguments 不能在没有参数的情况下调用'visibleCells'

If anyone help's me to do this, would be great. 如果有人帮助我做这件事,那就太好了。 Thank you in advance 先感谢您

import UIKit

class GalleryViewController: UIViewController {

    @IBOutlet weak var collectionview_gallery: UICollectionView!
    var imgarr = [UIImage(named: "1.png"),UIImage(named: "11.png"),UIImage(named: "111.png"),UIImage(named: "1111.png"),UIImage(named: "1.png"),UIImage(named: "11.png"),UIImage(named: "111.png"),UIImage(named: "1111.png"),UIImage(named: "1.png"),UIImage(named: "11.png"),UIImage(named: "111.png"),UIImage(named: "1111.png"),UIImage(named: "1.png"),UIImage(named: "11.png"),UIImage(named: "111.png"),UIImage(named: "1111.png"),UIImage(named: "1.png"),UIImage(named: "11.png"),UIImage(named: "111.png"),UIImage(named: "1111.png"),UIImage(named: "1.png"),UIImage(named: "11.png"),UIImage(named: "111.png"),UIImage(named: "1111.png"),UIImage(named: "1.png"),UIImage(named: "11.png"),UIImage(named: "111.png"),UIImage(named: "1111.png"),UIImage(named: "1.png"),UIImage(named: "11.png"),UIImage(named: "111.png"),UIImage(named: "1111.png"),UIImage(named: "1.png"),UIImage(named: "11.png"),UIImage(named: "111.png"),UIImage(named: "1111.png"),UIImage(named: "1.png"),UIImage(named: "11.png"),UIImage(named: "111.png"),UIImage(named: "1111.png"),UIImage(named: "1.png"),UIImage(named: "11.png"),UIImage(named: "111.png"),UIImage(named: "1111.png"),UIImage(named: "1.png"),UIImage(named: "11.png"),UIImage(named: "111.png"),UIImage(named: "1111.png")]
    override func viewDidLoad() {
        super.viewDidLoad()
        collectionview_gallery.delegate = self
        collectionview_gallery.dataSource = self
        collectionview_gallery.register(UINib(nibName: "GalleryCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "GalleryCollectionViewCell")
    }
    override func viewWillAppear(_ animated: Bool) {
        animateTable()
    }

    func animateTable() {
        collectionview_gallery.reloadData()

        let cells = collectionview_gallery.visibleCells()
        let tableHeight: CGFloat = collectionview_gallery.bounds.size.height

        for i in cells {
            let cell: UICollectionViewCell = i as UICollectionViewCell
            cell.transform = CGAffineTransformMakeTranslation(0, tableHeight)
        }

        var index = 0

        for a in cells {
            let cell: UICollectionViewCell = a as UICollectionViewCell
            UIView.animateWithDuration(1.5, delay: 0.05 * Double(index), usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: nil, animations: {
                cell.transform = CGAffineTransformMakeTranslation(0, 0);
            }, completion: nil)

            index += 1
        }
    }


}
extension GalleryViewController: UICollectionViewDelegate,UICollectionViewDataSource{
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 50

    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionview_gallery.dequeueReusableCell(withReuseIdentifier: "GalleryCollectionViewCell", for: indexPath) as! GalleryCollectionViewCell
        cell.image_gallery.image = imgarr[indexPath.row]
        return cell
    }


}

here simple process how to image animation bottom to top. 这里简单的过程如何将动画从底部到顶部。 Here,gif image animation bottom to top. 在这里,gif图像动画自下而上。 you would be follow the process. 你会按照这个过程。

@IBOutlet weak var eblLogo: UIImageView!
@IBOutlet var nrbcGif: UIImageView?

var heightScrren : CGFloat = 0.0

override func viewDidLoad() {
    super.viewDidLoad()

    let logoHeight = eblLogo.frame.origin.y + eblLogo.frame.height + 10
    heightScrren = logoHeight
    nrbcGif?.loadGif(name: "spin")

}

override func viewDidAppear(_ animated: Bool) {
    UIView.animate(withDuration: 2, delay: 1, options: [.curveEaseOut],
                   animations: {

                    self.nrbcGif?.center.y -= self.view.bounds.height - 500
                    self.view.layoutIfNeeded()

    }, completion: nil)
}

} }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何从上到下为视图设置动画并正确堆叠该视图? - How to animate a view from top to bottom and stacking that view properly? 如何在 Swift 1.2 中从下到上动画 UIlabel - How to animate UIlabel from bottom to top in Swift 1.2 Swift:UIDynamic动画面板从下到上 - Swift: UIDynamic animate panel from bottom to top 如何使用CATransform3D在iOS中从底部到顶部对视图进行动画处理 - how to animate view from bottom to top in iOS using CATransform3D 如何为Xamarin iOS中从底部到顶部的UITableViewCell过渡设置动画? - How to animate a UITableViewCell transition from bottom to the top in Xamarin iOS? 如何使用约束从下到上为UIView设置动画? - How to animate UIView using constraint from bottom to top? 如何从打印结构中删除[](swift4) - How to remove [] from print struct (swift4) Swift无法从上到下呈现视图控制器 - Swift Unable to present view controller from top to bottom 如何在Swift 4中从CollectionView的底部到Input Accessory View的顶部设置约束 - How to set constraints from the bottom of a collectionView to the top of Input Accessory View in Swift 4 如何在集合视图中设置项目快速自下而上 - How to set items in collection view go bottom-to-top with swift
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM