我需要一组属性文本。我需要每个元素的颜色根据其在阵列中的位置而改变(这将通过HSV来实现,因为色调值将与位置相关)。该数组根据用户输入而有所不同,我不知道如何编写它以便自动更改颜色。我把用户的输入分成了一个数组,那么我怎样才能将每个单词转换为属性文本?我完全不知道如何做到这一点,所以提前感谢您的帮助。如何制作属性文本数组
-1
A
回答
1
您可以通过使用enumerate
和map
更加简洁做到这一点:
let strings = ["The", "Cat", "In", "The", "Hat"]
let attribStrings = strings.enumerate().map { index, element in
return NSAttributedString(string: element, attributes: [NSForegroundColorAttributeName:UIColor(hue: CGFloat(index)/CGFloat(strings.count), saturation: 0.5, brightness: 0.5, alpha: 1.0)])
}
您的阵列中的每个原始元素与UIColor(hue: CGFloat(index)/CGFloat(strings.count), saturation: 0.5, brightness: 0.5, alpha: 1.0)
文本颜色映射到NSAttributedString
。您应该根据自己的喜好调整饱和度和亮度。
输出到UILabel
会是什么样子:
0
您可以使用NSForegroundColorAttributeName来更改NSAttributedString的颜色。我在下面列出了一个样本,它创建了64种不同的颜色 。
func colorUsingHSV(index : Int, total : Int) -> UIColor
{
return UIColor(hue: CGFloat((CGFloat(index)/CGFloat(total))), saturation: 1.0, brightness: 1.0, alpha: 1.0)
}
func generateAttributeText()
{
var attrStrings = [NSAttributedString]()
for i in 1...64
{
let attrString: NSMutableAttributedString = NSMutableAttributedString(string: "Text")
attrString.addAttribute(NSForegroundColorAttributeName, value: colorUsingHSV(i,total: 64), range: NSMakeRange(0, attrString.length))
attrStrings.append(attrString)
}
}
相关问题
- 1. 如何从属性文件中读取字节数组作为属性
- 2. 如何将数组控制器绑定到NSDocument数组属性?
- 3. Sitecore组件属性将文本作为文本呈现
- 4. 数组作为类属性?
- 5. 如何从一个文本文件制作一个数组
- 6. 如何将TextBlock的文本属性绑定到文本框的文本属性
- 7. VBA OOP如何制作子属性
- 8. 如何对齐Asp面板的分组文本属性
- 9. 从代理属性复制数组
- 10. XSLT 1.0将属性值复制为文本并删除属性
- 11. 如何在扩展类后扩展类数组/属性类的数组属性?
- 12. 使用XML Schema如何定义属性并限制文本?
- 13. 如何绑定文本框和属性?
- 14. 当属性是数组时,如何通过文档属性查询?
- 15. Backbone - 如何this.model.save()与数组的属性?
- 16. 从制表符分隔的文本文件列制作数组
- 17. 流星:通过文本属性删除属性不工作
- 18. 悬停属性文本不工作
- 19. 如何重用用作xml属性的文本?
- 20. 如何使输出文本属性值作为超链接?
- 21. C#数组作为类属性
- 22. Javascript:数组作为对象属性(&ZeroClipboard)
- 23. 使用C数组作为属性
- 24. Ember.js数组作为模型的属性
- 25. 数组作为java类中的属性?
- 26. C#如何比较作为数组元素的对象属性?
- 27. 如何传递数组作为元素的属性?
- 28. 如何将float *数组作为属性传递?
- 29. 如何使用_.where(list,properties)将内部数组作为属性?
- 30. @ManyToOne关系属性:如何制作相对计数器?
这将帮助,如果你能更具体。也许提供一些你已经尝试过的代码。 – Zaz