gpt4 book ai didi

ios - 我怎么能从 js 世界传递 swift 自定义组件的属性

转载 作者:可可西里 更新时间:2023-11-01 04:00:20 26 4
gpt4 key购买 nike

我有一个由 swift 编写的自定义组件,我想从 js 世界传递一些自定义属性,

但我真的不知道该怎么做,下面提供一些主要代码。


Demo-Bridging-Header.h

#import "RCTBridgeModule.h"
#import "RCTViewManager.h"

CollectionViewManagerBridge.m

#import "RCTView.h"
#import "RCTViewManager.h"


@interface RCT_EXTERN_MODULE(CollectionViewManagerSwift, RCTViewManager)

@end

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

}

另外,我还有上面用到的CustomCell.swiftCustomCollectionViewLayout.swift

当我调用 <CollectionViewManagerSwift /> 时,这些代码工作正常在render()来自 js 世界的方法,

但是我怎么能像 <CollectionViewManagerSwift customProperty={customProperties} /> 这样从 js 世界传递属性呢? ,以及我如何定义 customProperty在我的快速代码中?

可能我没有表达清楚,谢谢你的时间。


跟进

我尝试添加 customPropertyCollectionViewManagerBridge.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

然后我从js世界调用它

<CollectionViewManagerSwift customProperty={['foo', 'bar']} />

我在 Xcode 输出中得到值

2016-02-27 17:58:07.167 Demo[49690:12639774] foo -- bar

但我怎样才能得到 customPropertyCollectionViewManagerSwift.swift 中?

再次感谢。

问候

最佳答案

您需要:“实现 -(UIView *)view 方法”,如本文档中所述:http://facebook.github.io/react-native/docs/native-components-ios.html#content

这是您可以初始化 CollectionView 的地方。

关于ios - 我怎么能从 js 世界传递 swift 自定义组件的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35652660/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com