0

像往常一样,我遇到的问题在互联网上没有得到很好的解释,Apple 文档也很有限。

我有带有单元格的 UICollectionView。我想在每个单元格内展示电影海报。我导入了 TVUIkit 并在项目设置中添加了框架。

我的 FilmCelkaCollectionViewCell.h 包含

    API_AVAILABLE(tvos(12.0))
@interface FilmCelkaCollectionViewCell : UICollectionViewCell 
@property (strong, nonatomic) IBOutlet TVPosterView *widokPlakatu;

@end

FilmCelkaCollectionViewCell.m不包含任何方法。

在我的 collectionviewcontroller 单元格定义如下:

- (nonnull __kindof UICollectionViewCell *)collectionView:(nonnull UICollectionView *)collectionView cellForItemAtIndexPath:(nonnull NSIndexPath *)indexPath {
    UICollectionViewCell *celka = (FilmCelkaCollectionViewCell*)[collectionView dequeueReusableCellWithReuseIdentifier:@"filmCela" forIndexPath:indexPath];

    celka.backgroundColor =[UIColor greenColor];

    return celka;
}

我添加了绿色背景以在模拟器中查看更好的区域。但问题是我不知道如何访问属性TVPosterView *widokPlakatu- 我唯一可以访问的是celka.contentView. 我观看了有关“tvos12 中的新功能”的 WWDC2018 视频,但仍有疑问:

  1. TVPosterView 是否像 CollectionViewCell 一样,我可以在没有单元格的情况下将它与 UICollectionView 一起使用?
  2. TVPosterView 是不是一些特殊的@property,无法访问,必须在某处初始化,不知何故?我在情节提要中定义了属性。
  3. 是否禁止在 CollectionViewCell 中放置视图?
4

1 回答 1

0

好的,我偶然找到了解决方案。

这个

FilmCelkaCollectionViewCell *celka = [collectionView dequeueReusableCellWithReuseIdentifier:@"filmCela" forIndexPath:indexPath];

会工作,而类型转换不会

UICollectionViewCell *celka = (FilmCelkaCollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"filmCela" forIndexPath:indexPath];
于 2019-09-21T19:49:07.667 回答