【问题标题】:UiTextField inside UiStackView is not respondingUiStackView 中的 UiTextField 没有响应
【发布时间】:2019-07-20 05:00:13
【问题描述】:

目标:我正在使用 swift ui 构建时间表。

问题:在顶部,我有继承自 UiViewController 的类 A。它在垂直堆栈中布置一个 UiStackView 以将屏幕分为三个:顶部、中心、底部。我在中心视图内遇到问题。如果我直接添加它,我只能与中心内的 UiTextField 交互。

在中心视图中,我有一个继承自 UiView 的类 B。在类中,我有另一个 UiStackView,它将添加一个水平堆栈以很好地布局一些项目。

我在中心视图类之外的同一个文件中创建了一个类C,它继承自UiView。它包含一个我设置和添加的 UiTextField。

这就是事情变得奇怪的地方,我可以在 B 类中做,而且我将能够很好地使用 UiTextField:

`let temp = ClassC (inherits UiView)
self.addSubView(temp)` <- works

`ClassBUiStackView.addSubView(ClassC)
UiView temp = UiView(...)
temp.addSubView(ClassBUiStackView)
self.addSubView(temp)` <- fails

让我提供一些实际代码:

`class A: UiViewController{
 override func viewDidLoad(){
  super.viewDidLoad()
  self.top = ...
  self.cnr = Class B
  self.btm = ...
  self.ClassAUiStackView(arrangedSubviews: [top,cnr,btm])
  ...constraints...
  self.view.addSubview(ClassAUiStackView)
 }
}
class B: UiView{
 override init(...){
  super.init(...)
  self.ClassBUiStackView(...x,y,width,heigh...)
  ...constraints...
  let temp = UiView(...)
  self.ClassBUiStackView.addSubView(ClassC)
  temp.addSubView(ClassBUiStackView)
 }
}
class C: UiView{
 var UiTF: UiTextField!
 required init(..., classB, ...){
  ...setup UiTf...
  self.UiTF.addTarget(self, action: #selector(uitfAction), for: .allEvents)
 self.addSubView(UiTf)
 }
 @objc func uitfAction(senderL UITextField!){
  ...some action...
 }
}
`

对此的任何帮助将不胜感激。这是我的第一个 Swift 应用程序,所以我还是个新手。请详细说明,我将全部阅读(多次)。谢谢!

【问题讨论】:

  • view.bringSubviewToFront() 可能会有所帮助,这只是通过非常简短的浏览。试试看是否可行。
  • 我试着做 view.bringSubviewToFront() 但做骰子。不知道是不是因为约束我失去了交互能力。
  • 我找到了使我的所有 ui 组件再次响应的答案,我必须添加 uiStackView.translatesAutoresizingMaskIntoConstraints = true,如果它被删除或设置为 false,则 ui 组件不响应。

标签: ios swift uiview uistackview


【解决方案1】:

我找到了使我的所有 ui 组件再次响应的答案,我必须添加 uiStackView.translatesAutoresizingMaskIntoConstraints = true,如果将其删除或设置为 false,则 ui 组件不会响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 2021-05-08
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多