Как реализовать UIVibrancyEffect для заголовка табличного представления?
Я хотел бы, чтобы текст заголовков разделов моего табличного представления отображался в ярком стиле, где базовый интерфейс просвечивает текст. Я попробовал следующее, но ничего не отображается для заголовка, как будто я вернулся 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
}
1 ответ
Решение
Решил это. Единственные проблемы с моим кодом, представленным в вопросе: я должен был установить рамки для представления и метки (duh), и мне нужно было указать стиль эффекта размытия, чтобы .Dark
не .Light
чтобы текст был светлым, а не темным. Для тех, у кого есть тот же вопрос, вот код. Вы хотите настроить положение / размер / и т.д. текста, я уверен. Обратите внимание, что я уже применил эффект размытия для фона табличного представления.
//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