Vic*_*nna 1 ios swift react-native
我正在快速开发本机 ui 组件,以添加到我的反应本机移动应用程序中。我有一个由继承自 RCTManager 的管理器类创建的根视图。在该视图中,我使用自动布局来确定子视图的大小和位置。然而,一些嵌套的子视图实际上需要知道它们的父视图\xe2\x80\x99s帧大小(宽度和高度)。问题是,当在根视图上调用 init 方法时,我需要这些值,但通过使用自动布局,似乎无法获取这些值。对于 React Native 应用程序来说,通常在纯 ios 应用程序的视图控制器中的许多逻辑现在都在实际视图中。因此,诸如 viewDidLayoutSubviews 之类的方法在视图管理器或视图中不可访问。我非常感谢有关此问题的任何指导或帮助。提前致谢。
\n如果正确理解你的问题,我解决这个问题的方法是利用UIView.layoutSubview. 在该方法中,您应该有权访问父级UIView的框架/边界,您可以使用它来计算附加子视图的框架。
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
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1162 次 |
| 最近记录: |