我希望我的 TableView 部分标题文本以充满活力的样式呈现,其中底层 UI 会通过文本闪耀。我尝试了以下方法,但标题没有出现,就好像我返回了 nil 一样。
override func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
//Add vibrancy text effect
let blurEffect = UIBlurEffect(style: .Light)
let vibrancyEffect = UIVibrancyEffect(forBlurEffect: blurEffect)
let vibrancyEffectView = UIVisualEffectView(effect: vibrancyEffect)
//Label for vibrant text
let vibrantLabel = UILabel()
vibrantLabel.text = "testing"
vibrantLabel.font = UIFont.systemFontOfSize(11.0)
vibrantLabel.textColor = UIColor(white: 0.64, alpha: 1)
vibrancyEffectView.contentView.addSubview(vibrantLabel)
return vibrancyEffectView
}
请您参考如下方法:
解决了。我在问题中提供的代码的唯一问题是:我必须为 View 和标签设置框架(duh),并且我需要将模糊效果样式指定为 .Dark 而不是 .Light 以确保文本是浅色而不是深色。对于有相同问题的任何人,这是代码。我确定您会想要调整文本的位置/大小/等。请注意,我已经为表格 View 的背景应用了模糊效果。
//Create vibrancy text effect
let blurEffect = UIBlurEffect(style: .dark)
let vibrancyEffect = UIVibrancyEffect(blurEffect: blurEffect)
let vibrancyEffectView = UIVisualEffectView(effect: vibrancyEffect)
vibrancyEffectView.frame = CGRect(x: 0, y: 0, width: tableView.bounds.size.width, height: 40)
vibrancyEffectView.autoresizingMask = .flexibleWidth
//Create header label
let vibrantLabel = UILabel()
vibrantLabel.frame = vibrancyEffectView.frame
vibrantLabel.autoresizingMask = .flexibleWidth
vibrantLabel.text = "testing"
vibrantLabel.font = UIFont.systemFont(ofSize: 16)
vibrantLabel.textColor = UIColor(white: 0.64, alpha: 1)
vibrancyEffectView.contentView.addSubview(vibrantLabel)
return vibrancyEffectView
