【发布时间】:2019-09-18 23:14:58
【问题描述】:
我有一个网格UICollectionView,在每个单元格中显示一个文本标签。虽然该图显示了每个单元格中的不同属性,但我无法弄清楚如何在 indexPath.item 处存储和访问特定的 NSAttributedString.Key.foregroundColor 值。
对于文本,我有一个字符串值数组,我通过 cellForItemAt indexPath 中的 indexPath.item 调用它。但我不知道如何创建一个等效的属性值数组。
型号: 让 myText = ["Pos.1", "Main Verb", "Pos.2".... 等
集合视图数据源:
func colletionView(_ collectionView.UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CVCell", for: indexPath as! CVCell
let text = myModel.myText[indexPath.item]
let myAttribute = [NSAttributedString.Key.foregroundColor: UIColor.blue]
let myAttributedText = NSAttributedString(string: text, attributes: myAttributes as [NSAttributedString.Key : Any])
cell.label.attributedText = myAttributedText
return cell
}
我尝试过创建 NSAttributedString 或 NSAttribtuedString.Key 的数组,但它永远不会编译。我该怎么做才能在 indexPath.item 中获得正确的值?还是这完全是错误的方法?
let cellColor = [
NSAttributedString.Key.foregroundColor: UIColor.blue
NSAttributedString.Key.foregroundColor: UIColor.red
...
最终,我希望将数据保存在 plist 或 json 文件或核心数据中,但(我相信)仍需要将数据加载到数组中(我相信)才能通过 indexPath.item 访问。
我不是很有经验,所以我可能遗漏了一些非常基本的东西。
【问题讨论】:
-
Chante myText 数组类型从 [String] 到 [NSAttributedString]
-
您要将颜色存储在coredata还是plist中?
-
作为第一步,我“只是”想创建一个要使用的数组,然后当我在代码中对数据进行建模时,我将使用 plist 或 coredata 来加载大批。现在 - 尝试 LorenzOliveto 回答(对我来说很有意义)。
标签: ios uitableview uicollectionview nsattributedstring nsattributedstringkey