我有swift编写的自定义组件,我想从js world传递一些自定义属性,
但我真的不知道该怎么做,请在下面提供一些主要代码.
演示桥接,Header.h
#import "RCTBridgeModule.h"
#import "RCTViewManager.h"
Run Code Online (Sandbox Code Playgroud)
CollectionViewManagerBridge.m
#import "RCTView.h"
#import "RCTViewManager.h"
@interface RCT_EXTERN_MODULE(CollectionViewManagerSwift, RCTViewManager)
@end
Run Code Online (Sandbox Code Playgroud)
CollectionViewManagerSwift.swift
@objc(CollectionViewManagerSwift)
class CollectionViewManagerSwift : RCTViewManager, UICollectionViewDataSource, UICollectionViewDelegate {
let contentCellIdentifier = "CellIdentifier"
var collectionView: UICollectionView
override init() {
let layout = CustomCollectionViewLayout()
let collectionView = UICollectionView(frame: CGRectZero, collectionViewLayout: layout)
collectionView.registerClass(CustomCell.self, forCellWithReuseIdentifier: contentCellIdentifier)
collectionView.directionalLockEnabled = false
collectionView.backgroundColor = UIColor.whiteColor()
self.collectionView = collectionView
}
override func view() -> UICollectionView! {
self.collectionView.delegate = self
self.collectionView.dataSource = self
return self.collectionView;
}
// ... some other code
}
Run Code Online (Sandbox Code Playgroud)
另外,我还有上面使用的CustomCell.swift和CustomCollectionViewLayout.swift,
当我把这些代码做工精细<CollectionViewManagerSwift />的render()方法从JS世界,
但我怎么能从js世界中传递属性<CollectionViewManagerSwift customProperty={customProperties} />,我怎么能customProperty在我的swift代码中定义?
也许我没有表达清楚,谢谢你的时间.
我尝试添加customProperty在CollectionViewManagerBridge.m
#import "RCTView.h"
#import "RCTViewManager.h"
@interface RCT_EXTERN_MODULE(CollectionViewManagerSwift, RCTViewManager)
RCT_CUSTOM_VIEW_PROPERTY(customProperty, NSArray, CollectionViewManagerSwift)
{
NSLog(@"%@ -- %@", json[0], json[1]);
}
@end
Run Code Online (Sandbox Code Playgroud)
然后我从js世界叫它
<CollectionViewManagerSwift customProperty={['foo', 'bar']} />
Run Code Online (Sandbox Code Playgroud)
我在Xcode输出中得到了值
2016-02-27 17:58:07.167 Demo[49690:12639774] foo -- bar
Run Code Online (Sandbox Code Playgroud)
但我怎么能得到customProperty在CollectionViewManagerSwift.swift?
再次感谢.
问候
您需要:“实现 -(UIView *)view 方法”,如本文档中所述: http: //facebook.github.io/react-native/docs/native-components-ios.html#content
您可以在那里初始化 CollectionView。