为啥 Button SubView 不会在 swift 4 中回到后面?
Posted
技术标签:
【中文标题】为啥 Button SubView 不会在 swift 4 中回到后面?【英文标题】:why Button SubView will not go to the back in swift 4?为什么 Button SubView 不会在 swift 4 中回到后面? 【发布时间】:2019-01-07 11:36:30 【问题描述】:我有一个带有 xib 文件的视图类,所以我想在按钮的背景上使用这个视图,所以我使用了子视图,但问题是按钮的子视图将在按钮的前面,所以我不能点击按钮不再我使用 UI 调试模式,我意识到按钮在视图的后面,所以我在我的代码中使用 send to back 但视图仍然在按钮的前面!
let adsView = videoAdsView()
func adsOutlet()
self.adsView.frame = CGRect(x: 0, y: 0, width: 80, height: 80)
self.showAdsOutlet.addSubview(adsView)
self.showAdsOutlet.sendSubview(toBack: self.adsView)
override func viewDidLayoutSubviews()
super.viewDidLayoutSubviews()
adsOutlet()
【问题讨论】:
showAdsOutlet
是你的按钮的变量,adsView
是你想要在按钮后面的背景视图吗?
是的 showAdsOutlet 是我的按钮,adsView 是我的视图,应该在按钮的后面
【参考方案1】:
将以下代码放在 adsOutlet 方法的末尾:
self.adsView.isUserInteractionEnabled = false
【讨论】:
【参考方案2】:如果您想将按钮添加为背景视图的子视图,那么您可以这样做,您的按钮将位于背景前面:
self.backgroundView.addSubview(adsButton)
如果您不想将adsButton
作为backgroundView
的子视图,但您想确保它出现在backgroundView
的前面,那么假设两者都是父view
的子视图,请执行以下操作:
self.view.sendSubview(toFront:adsButton)
【讨论】:
抱歉,我误解了您在设置背景视图前的按钮时遇到问题,但真正的问题是您无法与之交互。 没问题但是mohammad_Z74的回答解决了我的问题【参考方案3】:请试试这个代码:
清除按钮background color
。
然后写这段代码:
self.view.bringSubview(toFront: showAdsOutlet)
它可能对你有帮助。谢谢
【讨论】:
以上是关于为啥 Button SubView 不会在 swift 4 中回到后面?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 superview-with-subview 在模态显示(使用自动布局)时会缩小?
为啥 Gtk 的 button_press_event 不会收到单击左键?