Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UITableViewCell中的UIImageView或AVPlayer(照片或视频)_Ios_Swift_Uitableview_Firebase_Firebase Storage - Fatal编程技术网

Ios UITableViewCell中的UIImageView或AVPlayer(照片或视频)

Ios UITableViewCell中的UIImageView或AVPlayer(照片或视频),ios,swift,uitableview,firebase,firebase-storage,Ios,Swift,Uitableview,Firebase,Firebase Storage,1)我有一个带有UITableView的应用程序。此单元格包含一些内容,如UILabel,UIButton(如,说明等),还应存储图像或视频(取决于帖子类型(如instagramclassic post))。所以细胞可以是两种类型中的一种:带视频或带照片。其他信息、约束、尺寸等类似 目前,我只有一个自定义单元格类型,带有UIView(都用于照片/视频)。我在这个UIView上添加了AVPlayer和UIImageView层。这是可行的,但我认为这是一种不好的方法。而且它的逻辑层也很糟糕 如何做好

1)我有一个带有
UITableView
的应用程序。此单元格包含一些内容,如
UILabel
UIButton
(如,说明等),还应存储图像或视频(取决于帖子类型(如
instagram
classic post))。所以细胞可以是两种类型中的一种:带视频或带照片。其他信息、约束、尺寸等类似

目前,我只有一个自定义单元格类型,带有
UIView
(都用于照片/视频)。我在这个
UIView
上添加了
AVPlayer
UIImageView
层。这是可行的,但我认为这是一种不好的方法。而且它的逻辑层也很糟糕

如何做好这件事?我应该有两种自定义单元格类型吗?或者可能有图书馆为它服务

2)我正在从
Firebase存储下载数据。此操作是异步的。因此,我将介质(
宽度/高度
)的
MediaAspectRatio
存储在我的
positem
中。我用它来缩放
ui视图
,以免单元格显示为不裁剪介质。我也不确定,这是正确的逻辑


如有任何建议,我们将不胜感激。谢谢。

两种方法都可以。但是,拥有两种不同的单元类型可能是一种更干净的实现

另外,有两种单元类型将使您不必在运行时将imageView与AvPlayer层交换,因为单元重用可能会使事情变得复杂

至于调整大小,只要确保不打破任何限制,逻辑听起来不错

图像视图和AVPlayer具有AspectFill的概念,这就是您希望不破坏媒体的纵横比,同时不进行裁剪的方法


另一方面,AspectFit将保持纵横比和裁剪。

1。)我不确定它是否更好,但我使用了两个不同的自定义单元格来实现这一点。@MarcelT我明白了。我想要一个通用的解决方案。谢谢你的回复。另外,您是否正在异步下载媒体?如何调整视图大小以避免裁剪?抱歉,我无法回答您与firebase相关的问题,因为我正在应用程序中使用照片框架。还有,我正在修剪它,所以我也帮不了你。对不起。@MarcelT无论如何,谢谢!谢谢你的回复。我投你一票。也许会很快接受@VladPulichev