【问题标题】:Bringing Subview to front in custom UIVIew在自定义 UIVIew 中将 Subview 置于最前面
【发布时间】:2018-04-12 15:23:41
【问题描述】:

我正在使用自定义UIView,默认情况下它包含以下元素(在调用 init 后这些元素已设置):

  • UIImageView
  • UIView
  • UIView

这些在类代码中被声明为open var

在我的代码中,我添加了另一个 UIView,如下所示:

myView?.addSubview(div)
myView?.bringSubview(toFront: div)

现在调用 bringSubviewToFront 仅适用于由代码添加的 div 元素,而不适用于默认视图。

myView?.bringSubview(toFront: myView?.likedView)

如何将 UIViews 放在前面?

【问题讨论】:

  • 您在此处显示的代码有问题。 bringSubView 不接受可选值(视图)。 open func bringSubview(toFront view: UIView)
  • 喜欢视图初始化了吗?
  • 您是否为您的 myView 制作了课程以及如何将其添加到您的控制器中?检查其子视图是否正确初始化。

标签: ios swift uiview bringtofront


【解决方案1】:

首先明确bringSubviewToFront的概念。

bringSubviewToFront 只能用于直接子视图或子视图我的意思是你不能对子视图的子视图这样做。

例如,您有类似的视图层次结构,

A -> B -> C

A 是父视图,B 是它的子视图,C 是 B 的子视图。

现在你可以直接点赞了

 A?.bringSubview(toFront: B)

但做不到,

 A?.bringSubview(toFront: C)

如果你想让 C 走在前面,那么你必须这样做,

 A?.bringSubview(toFront: B)

 B?.bringSubview(toFront: C)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 2015-07-09
    • 1970-01-01
    相关资源
    最近更新 更多