gpt4 book ai didi

objective-c - NSCollectionViewItem不显示自定义 View

转载 作者:行者123 更新时间:2023-12-03 18:07:36 25 4
gpt4 key购买 nike

我有一个 NSCollectionViewItem 的子类,名为 ZMSDKThumbnailCollectionViewItem。使用它,我想显示由 ZMSDKThumbnailVideoItemView 表示的自定义 View 。

ZMSDKThumbnailCollectionViewItem 由 XIB 文件表示。其中恰好包含一个 NSView,其类设置(使用 Identity Inspector)为 ZMSDKThumbnailVideoItemView

@interface ZMSDKThumbnailCollectionViewItem : NSCollectionViewItem
@property (assign) IBOutlet ZMSDKThumbnailVideoItemView *videoItemView;
@end

在我的 NSCollectionViewDataSource 中,我创建如下项目:

- (NSCollectionViewItem *)collectionView:(NSCollectionView *)collectionView itemForRepresentedObjectAtIndexPath:(NSIndexPath *)indexPath
{
ZMSDKThumbnailCollectionViewItem* item = [collectionView makeItemWithIdentifier:@"ZMSDKThumbnailCollectionViewItem" forIndexPath:indexPath];
ZMSDKThumbnailVideoItemView* thumbnailView = [_thumbnailVideoArray objectAtIndex:indexPath.item];

// IBOutlet videoItemView
item.videoItemView = thumbnailView;

return item;
}

问题:虽然_thumbnailVideoArray包含元素,但 Collection View 中没有显示任何内容。

当我修改 ZMSDKThumbnailCollectionViewItem 使其包含 NSLabel 而不是 ZMSDKThumbnailVideoItemView 时,项目将正确显示。

问题:我必须以何种方式创建 NSCollectionViewItem 来显示自定义 View ? 在 XIB 文件中设置包含 View 的类是否正确像我一样到 ZMSDKThumbnailVideoItemView 吗?

最佳答案

毕竟我找到了解决方案。

不必更改项目 View 的类,而是必须向项目 View 添加 subview :

- (NSCollectionViewItem *)collectionView:(NSCollectionView *)collectionView itemForRepresentedObjectAtIndexPath:(NSIndexPath *)indexPath
{
ZMSDKThumbnailCollectionViewItem* item = [collectionView makeItemWithIdentifier:@"ZMSDKThumbnailCollectionViewItem" forIndexPath:indexPath];
ZoomSDKVideoElement* thumbnailView = [_videoArray objectAtIndex:indexPath.item];
[item.view addSubview:[thumbnailView getVideoView]];

return item;
}

关于objective-c - NSCollectionViewItem不显示自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61048176/

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