【问题标题】:Swift - Push CollectionView in the backgroundSwift - 在后台推送 CollectionView
【发布时间】:2019-10-23 13:25:52
【问题描述】:

如何以编程方式在后台推送我的 collectionView?现在它覆盖了我的底栏。在 Storyboard 中这很容易,但我不知道如何以编程方式完成。

    let theCollectionView: UICollectionView = {
    let v = UICollectionView(frame: CGRect.zero, collectionViewLayout: UICollectionViewFlowLayout())
    v.translatesAutoresizingMaskIntoConstraints = false
    v.backgroundColor = .white
    v.contentInsetAdjustmentBehavior = .always
    v.layer.cornerRadius = 30
    return v
}()

【问题讨论】:

    标签: ios swift layer


    【解决方案1】:

    使用

    self.view.sendSubviewToBack(_ with: UIView)
    

    如果我解决了您的问题并且集合视图后面还有另一个视图,请使用该方法。

    例如,您的视图具有DashboardController 等视图。因此,您希望您必须在块中

    self.view.sendSubviewToBack(theCollectionView)
    

    希望对你有帮助。

    要实现这一点,还有一些工作要做。

    你可以隐藏你的collectionView

    yourCollectionView.isHidden = true
    

    您可以从superview 中删除您的UICollectionView

       yourCollectionView.removeFromSuperView()
    

    或者您可以将您的UICollectionView 设为Optional

    然后您可以removeFromSuperView 并设置nil

    yourCollectionView.removeFromSuperView()
    yourCollectionView = nil
    

    然后可以设置nilremoveFromSuperView

    当你再次使用时,必须重新初始化。

    【讨论】:

    • 我必须在哪里进行设置?在 ViewDidLoad 里面?
    • 把它放在你使用它的地方,它是通过按钮点击激活的吗?
    • 所以我在 viewDidLoad 中尝试了self.view.sendSubviewToBack(theCollectionView),但现在它消失了
    • 问题是在我的背景图片后面。我修复了它,现在它可以工作了!谢谢!
    • 只是一个提示:使用 self.view.bringSubviewToFront() 当你想做与这个过程相反的事情时:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    • 1970-01-01
    • 2019-06-22
    • 2013-01-14
    • 1970-01-01
    相关资源
    最近更新 更多