如何解决为什么 RPBroadcastPickerView 呈现空白屏幕?
我为 react-native (v0.61.5) 应用程序创建了一个本地 iOS 模块。它所做的只是返回本地 RPbroadcastPickerView。我期望的是显示选择器视图,但在我的测试中只显示一个空白的白屏。
这里是原生模块的样子:
#import <ReplayKit/ReplayKit.h>
#import <React/RCTViewManager.h>
@interface broadcastPickerManager : RCTViewManager
@end
@implementation broadcastPickerManager
RCT_EXPORT_MODULE(broadcastPicker)
- (UIView *)view
{
return [[RPSystembroadcastPickerView alloc] init];
}
@end
这是在 RN 中的样子
broadcastPickerView.js:
import { requireNativeComponent,View } from 'react-native'
module.exports = requireNativeComponent('broadcastPicker')
TestScreen.js:
class TestScreen extends React.Component {
constructor(props) {
super(props)
}
render() {
return (
<View style={{flex: 1,backgroundColor: 'red'}}>
<broadcastPickerView style={{ height: 200,width: 200,backgroundColor: 'blue'}} />
</View>
)
}
}
编辑: 我试过在本机代码中设置框架,以及在 javascript 中设置宽度/高度。设置本机代码没有影响。在javascript中设置高度/宽度以我选择的背景颜色显示视图。不完全确定我期望发生什么,但我猜 RPbroadcastPickerView 不是一个黑色的空视图。
React native docs on native module development found here 说:
注意:不要尝试将 frame 或 backgroundColor 属性设置为 通过 -view 方法公开的 UIView 实例。反应 本机将覆盖您的自定义类设置的值,以便 匹配您的 JavaScript 组件的布局道具。如果你需要这个 控制粒度最好包装 UIView 实例 你想在另一个 UIView 中设置样式并返回包装器 UIView 反而。有关更多上下文,请参阅问题 2948。
不确定我是否只是遗漏了一些东西,但是当导航到此屏幕时没有任何内容呈现。有什么建议吗?
解决方法
您需要为 RPSystemBroadcastPickerView 提供帧大小:
- (UIView *)view
{
return [[RPSystemBroadcastPickerView alloc] initWithFrame: CGRectMake(0,50,50)];
}
请注意,更改 frame
属性不会调整 RPSystemBroadcastPickerView
的大小(至少在 iOS 13 上)。自动布局也不会调整视图大小。
您可以在 docs 中找到 Swift 示例:
let broadcastPicker = RPSystemBroadcastPickerView(frame: CGRect(x: 0,y: 0,width: 50,height: 50))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。