我正在快速开发原生 UI 组件以添加到我的 React 原生移动应用程序中。我有一个 Root View ,它由继承自 RCTManager 的管理器类创建。在该 View 中,我使用自动布局来确定 subview 的大小和位置。然而,一些嵌套的 subview 实际上需要知道它们父 View 的框架大小(宽度和高度)。问题是在 Root View 上调用 init 方法时我需要这些值,但是通过使用自动布局似乎无法获得这些值。对于 React Native 应用程序,许多通常在纯 iOS 应用程序的 View Controller 中的逻辑现在出现在实际 View 中。因此,viewDidLayoutSubviews 等方法在 View 管理器或 View 中不可访问。我非常感谢有关此问题的任何指导或帮助。提前致谢。
最佳答案
如果正确理解你的问题,我解决这个问题的方法是利用 UIView.layoutSubview
.在该方法中,您应该有权访问父 UIView
的框架/边界,您可以使用它来计算附加 subview 的框架。
class MyView : UIView {
var label:UILabel?
override init(frame: CGRect) {
super.init(frame: frame)
self.frame = CGRect(x: 0, y: 0, width: 200, height: 200)
self.backgroundColor = UIColor.green
label = UILabel()
label?.text = "Hello World!"
label?.backgroundColor = UIColor.red
self.addSubview(label!)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func layoutSubviews() {
label?.frame = self.bounds
}
}
关于ios - React Native Swift UI 组件框架大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52008716/