ios - React Native Swift UI 组件框架大小

标签 ios swift react-native

我正在快速开发原生 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/

相关文章:

reactjs - 字段 : android - should NOT have additional property 'enableDangerousExperimentalLeanBuilds'

react-native - 如何使用 native react 识别元素是否在屏幕上?

ios - 仅使用提供的 IPA 文件更改应用程序版本(无 xcode)

iphone - NSCache崩溃的应用程序

ios - ARC 的内存问题

ios - 如何缩放我的 imagePickerController 相机以使其填满整个屏幕?

ios - 如何在不截断 ios 的情况下查看 "log stream"日志消息

ios - Obj-C/Swift 项目中的致命陷阱异常

ios - 如何在后台收到通知时显示警报和播放声音

javascript - 如何使用 Javascript fetch() 无需递归即可获取 REST 分页数据?