1

テーブル ビュー セクション ヘッダーのテキストを鮮やかなスタイルでレンダリングし、基になる 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
}
4

1 に答える 1

3

解決しました。質問で提供された私のコードの唯一の問題は次のとおりです。ビューとラベルのフレームを設定する必要があり(当然)、ぼかし効果のスタイルを指定して、テキストが暗い色ではなく明るい色に.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

最終的な効果のイメージ

于 2014-10-12T02:41:08.467 に答える