Как одновременно повернуть все представления в ячейках табличного представления при прокрутке? - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь повернуть все UIViews в ячейках одновременно, но я не могу этого сделать, поэтому я могу поворачивать UIViews, присутствующие в ячейках, которые находятся сверху и снизу при прокрутке вверх и вниз, но в средней частиUIViews ячейки табличного представления не вращаются, они вращаются только тогда, когда они вот-вот будут сняты.

Вот мой исходный код:

   //
//  ViewController.swift
//  scrollIT
//
//  Created by AK on 10/2/19.
//  Copyright © 2019 AK. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    var indexPth: IndexPath!
    @IBOutlet weak var tableViewz: UITableView!
    override func viewDidLoad() {
        super.viewDidLoad()
    }


}

extension ViewController: UITableViewDelegate, UITableViewDataSource {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 23
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableViewz.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? RotationCell
        indexPth = indexPath
        return cell!
    }

    func rotationFunc(inIndexPath: IndexPath, someAngle: CGFloat) {
        if let cell = self.tableViewz.cellForRow(at: inIndexPath) as? RotationCell {
            DispatchQueue.main.async {
                cell.rotatableView.transform = CGAffineTransform(rotationAngle: someAngle)
                cell.rotatableView.layoutIfNeeded()
            }
        }
    }

    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        let scrollOffset: CGPoint = scrollView.contentOffset
        print(scrollOffset)
        let degreesRotate: CGFloat = scrollOffset.y *  (CGFloat.pi / 180)
        rotationFunc(inIndexPath: indexPth , someAngle: degreesRotate)
    }



}

Вывод, который я получаю, выглядит следующим образом:

https://media.giphy.com/media/WTuteL5oD3HmEk4kjR/giphy.gif

Мы ценим ваше время и помощь! Спасибо! Дайте мне знать, если я что-то пропустил!

1 Ответ

2 голосов
/ 02 октября 2019

Попробуйте, чтобы сделать это для всех ячеек:

for eachIndexPath in tableViewz.indexPathsForVisibleRows {
// do your rotation stuff here
}
...