Ios UITableViewCell中的UIImageView或AVPlayer(照片或视频)
1)我有一个带有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层。这是可行的,但我认为这是一种不好的方法。而且它的逻辑层也很糟糕 如何做好
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