Hücre Seçimi Üzerine Degrade Görünümünü Canlandırın

0

Soru

Degrade görünümüne bir animasyon uygulamak istiyorum.

Bu konuda yardımcı olacak bir adım var mı? Şu anda her şey hazır ve seçim üzerinde görünen ve seçim olmadığında gizlenen hücrelere bağlı statik bir arka planım var. En zor kısmı, biraz yardıma ihtiyacım olan animasyon çalışması.

gradient interface-builder ios swift
2021-11-24 01:15:16
1

En iyi cevabı

0

Bu yöntemi deneyebilirsiniz - >Denetleyiciyi Görüntüle

class VC2: UIViewController {

// MARK:- IBOutlets
@IBOutlet weak var tblSample: UITableView!

// MARK:- Private Variables
private var SelectedCell: Int?

// MARK:- View Lifecycle
override func viewDidLoad() {
    super.viewDidLoad()
    initialConfig()
}

// MARK:- Initial Config
private func initialConfig() {
    tblSample.delegate = self
    tblSample.dataSource = self
    
    } 
}

// Tablo Görünümü Temsilcisi

extension VC2: UITableViewDelegate {

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 50
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    SelectedCell = indexPath.row
    tblSample.reloadData()
    }
}

// Tablo Veri Kaynağı

extension VC2: UITableViewDataSource {

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 10
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = UITableViewCell()
    cell.textLabel?.text = "\(indexPath.row)"
    cell.selectionStyle = .none
    if SelectedCell == indexPath.row {
        DispatchQueue.main.async {
            UIView.animate(withDuration: 1,delay: 0.5, options: .curveEaseIn) {
                cell.contentView.applyGradient(colours: [.white,.blue])
            }
        }
    }
    return cell
   }
}

// Degradeyi uygulamak ve kaldırmak için Uzantıyı görüntüle

extension UIView {

@discardableResult
func applyGradient(colours: [UIColor]) -> CAGradientLayer {
    return self.applyGradient(colours: colours, locations: nil)
}

@discardableResult
func applyGradient(colours: [UIColor], locations: [NSNumber]?) -> CAGradientLayer {
    let gradient: CAGradientLayer = CAGradientLayer()
    gradient.frame = self.bounds
    gradient.colors = colours.map { $0.cgColor }
    gradient.locations = locations
    self.layer.insertSublayer(gradient, at: 0)
    return gradient
}

func removeGradient() {
    for lay in self.layer.sublayers ?? [] {
        if lay is CAGradientLayer {
            lay.removeFromSuperlayer()
        }
    }
  }
}
2021-11-24 05:46:27

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................