React Native Swift UI Component框架大小

时间:2018-08-24 16:46:38

标签: ios swift react-native

我正在迅速开发本机ui组件,以添加到我的本机移动应用程序中。我有一个由从RCTManager继承的manager类创建的根视图。在该视图内部,我使用自动布局来确定子视图的大小和位置。但是,某些嵌套子视图实际上需要知道其父视图的帧大小(宽度和高度)。问题是,在根视图上调用init方法时,我需要这些值,但是通过使用自动布局,似乎无法获得这些值。使用React本机应用程序时,似乎通常在纯ios应用程序的视图控制器中的许多逻辑现在都在实际视图中。因此,在视图管理器或视图内无法访问诸如viewDidLayoutSubviews之类的方法。对于这个问题,我将不胜感激。提前致谢。

1 个答案:

答案 0 :(得分:0)

如果正确理解您的问题,那么我解决此问题的方法就是利用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
    }
}