UiStackView 内的 UiTextField 没有响应
UiTextField inside UiStackView is not responding
目标:我正在 ui使用 swift ui.
建立时间 sheet
问题:在顶部我有 class A 继承自 UiViewController。它在垂直堆栈中布置一个 UiStackView,将屏幕分为三部分:顶部、中心、底部。我在中心视图中遇到问题。直接添加只能和中间的UiTextField交互
在中心视图中,我有一个继承自 UiView 的 class B。在 class 我有另一个 UiStackView,它将添加一个水平堆栈来很好地布局一些项目。
我在中心视图class之外的同一个文件中做了一个classC,它继承自UiView。它包含一个我设置和添加的 UiTextField。
这就是事情变得奇怪的地方,我可以在 class 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 应用程序,所以我还是个新手。请详细说明,我会全部阅读(多次)。谢谢!
我找到了使我的所有 ui 组件再次响应的答案,我不得不添加 uiStackView.translatesAutoresizingMaskIntoConstraints = true
,如果它被取消或设置为 false,ui 组件不要回应。
目标:我正在 ui使用 swift ui.
建立时间 sheet问题:在顶部我有 class A 继承自 UiViewController。它在垂直堆栈中布置一个 UiStackView,将屏幕分为三部分:顶部、中心、底部。我在中心视图中遇到问题。直接添加只能和中间的UiTextField交互
在中心视图中,我有一个继承自 UiView 的 class B。在 class 我有另一个 UiStackView,它将添加一个水平堆栈来很好地布局一些项目。
我在中心视图class之外的同一个文件中做了一个classC,它继承自UiView。它包含一个我设置和添加的 UiTextField。
这就是事情变得奇怪的地方,我可以在 class 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 应用程序,所以我还是个新手。请详细说明,我会全部阅读(多次)。谢谢!
我找到了使我的所有 ui 组件再次响应的答案,我不得不添加 uiStackView.translatesAutoresizingMaskIntoConstraints = true
,如果它被取消或设置为 false,ui 组件不要回应。