Rom*_*iri 2 react-native react-native-ios
我正在 iOS 上创建本机 UI 组件,我希望它的大小根据内容大小扩展。似乎我必须设置固定的宽度和高度才能呈现视图。知道如何解决吗?
// JS
import React from 'react';
import { View, requireNativeComponent } from 'react-native';
class StyledText extends React.Component {
render() {
return (
<View style={this.props.style}>
// without the height and width the compnent won't show up
<StyledLabelReactBridge styledText={'some text'} style={{height: 100, width: 100, backgroundColor: 'red'}}/>
</View>
);
}
}
StyledText.propTypes = {
styledText: React.PropTypes.string,
style: View.propTypes.style
};
const StyledLabelReactBridge = requireNativeComponent('StyledLabelReactBridge', StyledText);
module.exports = StyledText;
Run Code Online (Sandbox Code Playgroud)
// 目标-C
@implementation StyledLabelReactBridgeManager
RCT_EXPORT_MODULE()
- (UIView *)view
{
return [[NewStyledLabel alloc] init];
}
RCT_CUSTOM_VIEW_PROPERTY(styledText, NSString, NewStyledLabel)
{
if (![json isKindOfClass:[NSString class]])
return;
[view setStyledText:[NewStyledText textFromXHTML:json]];
}
@end
Run Code Online (Sandbox Code Playgroud)
您需要reactSetFrame
在 xcode 中覆盖以接收内容大小更改。
#import "React/UIView+React.h"
@implementation YourView {
- (void)reactSetFrame:(CGRect)frame {
[super reactSetFrame: frame];
/* everytime content size changes, you will get its frame here. */
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1559 次 |
最近记录: |