【问题标题】:UICollectionView vibrancy effect between cellsUICollectionView 单元格之间的活力效果
【发布时间】:2016-10-20 13:31:53
【问题描述】:

我有一个 UICollectionView 有 3 个单元格(单元格的宽度是 self.collectionView.frame.size.width / 3)。

collectionView 放置在UIVisualEffectView 内,带有dark 模糊效果。

我想在每个单元格之间添加一个 1px 的活力间隙,我试过了:

let divider1 = UIVisualEffectView(frame: CGRect(x: self.collectionView.frame.size.width / 3, y: 0, width: 1, height: self.collectionView.frame.size.height))
divider1.effect = UIVibrancyEffect(blurEffect: UIBlurEffect(style: .dark))

let divider2 = UIVisualEffectView(frame: CGRect(x: (self.collectionView.frame.size.width / 3) * 2, y: 0, width: 1, height: self.collectionView.frame.size.height))
        divider2.effect = UIVibrancyEffect(blurEffect: UIBlurEffect(style: .dark))

self.collectionView.addSubview(divider1)
self.collectionView.addSubview(divider2)

但它没有呈现任何东西。如果我将分隔线的背景颜色设置为它确实有效的颜色,那么它可能具有活力效果。

知道为什么吗?

谢谢!

【问题讨论】:

  • 从链接中尝试我的答案。stackoverflow.com/questions/39976432/…。基于tableView的答案。但是,它适用于collectionView到..
  • @Joe 根据您的 tableView 答案,我无法真正理解在我的 collectionView 中要做什么。你能用我的代码解释一下吗?谢谢:)
  • 你必须为你的collectionView使用backgroundView来达到这个效果......

标签: ios iphone swift cocoa-touch uicollectionview


【解决方案1】:

试试这个代码:

注意:在 Swift 3 中测试

   override func viewDidLoad() {
    super.viewDidLoad()

        // Add a background view to the collectionView
        let backgroundImage = UIImage(named: "Set your image file here")
        let imageView = UIImageView(image: backgroundImage)
        self.collectionView.backgroundView = imageView

        //To get a balance look from collectionView background
        collectionView.backgroundColor = UIColor(patternImage: backgroundImage!)

        // To setup a blurView background
        let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.light)
        let blurView = UIVisualEffectView(effect: blurEffect)
        blurView.frame = view.bounds
        imageView.addSubview(blurView)

}

输出:

【讨论】:

  • 你的答案的活力效应在哪里?你确定你明白我想要达到的目的吗?
  • 应用鲜艳度很容易,只需将鲜艳度效果应用到blurView即可。
  • 应用活力 let vibrancyEffect = UIVibrancyEffect(blurEffect: blurEffect) let vibrancyEffectView = UIVisualEffectView(effect: vibrancyEffect) vibrancyEffectView.frame =blurView.contentView.addSubview(vibrancyEffectView)
  • 我强烈建议您使用 collectionView 颜色而不是应用活力。只是我个人的意见。试试这个看看发生了什么 collectionView.backgroundColor = UIColor(white: 0.5, alpha:0.6)。如果您使用颜色值。您会找到答案...
【解决方案2】:

要使其正常工作,您需要使用您在集合视图中使用的模糊效果创建 UIVibrancyEffect。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多