gpt4 book ai didi

ios - 中心位置时在 UICollectionViewCell 上添加掩码

转载 作者:可可西里 更新时间:2023-11-01 02:08:53 25 4
gpt4 key购买 nike

我有一个带有自定义单元格的 Collection View 。而且我不明白当单元格在 View 中居中时,如何将 Collection View 中的 UILabel 从黑色更改为红色。

enter image description here

最佳答案

我能想到的最简单的方法:

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!

override func viewDidLoad() {
super.viewDidLoad()
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
tableView.delegate = self
tableView.dataSource = self
}


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

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = "Cell #\(indexPath.row)"
return cell
}

func scrollViewDidScroll(_ scrollView: UIScrollView) {
if let tableView = scrollView as? UITableView {
for cell in tableView.visibleCells {
adjustCellColor(cell: cell)
}
}
}

func adjustCellColor(cell: UITableViewCell) {
let cellFrame = tableView.convert(cell.frame, to: view)
if cellFrame.contains(view.center) {
cell.textLabel?.textColor = UIColor.red
} else {
cell.textLabel?.textColor = UIColor.black
}
}
}

请记住,UITableViewUIScrollView 的子类(并且 UITableViewDelegate 协议(protocol)继承自 UIScrollViewDelegate 协议(protocol))因此,当您的 View Controller 是 UITableView 的委托(delegate)时,您可以实现 UIScrollViewDelegate 方法,例如 func scrollViewDidScroll(_ scrollView: UIScrollView)。滚动 TableView 时调用此方法。它遍历所有可见单元格,如果单元格位于 View 中心,则将文本颜色设置为红色,否则设置为黑色。

关于ios - 中心位置时在 UICollectionViewCell 上添加掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41615657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com