【发布时间】:2020-05-13 19:06:46
【问题描述】:
我使用MMPlayerView(GitHub 链接here)将视频添加到集合视图中,在集合视图中,图像被代码中的视频替换(来自演示)。我采用了MMPlayerView 的演示项目并更改了一些东西以满足我的需求,然后将其实施到我的项目中,以便在this video 中获得类似这个节目的内容。
现在我显然想将收藏视图向上移动到屏幕顶部的按钮,稍后我将使用多个类似的收藏视图来使应用商店的风格更像,只是显示视频.由于我从演示中获取代码我不太确定某些事情,当我复制项目的演示时,集合视图是为垂直滚动而制作的,因此它占据了整个屏幕,因此集合视图被限制为视图的底部:
这导致它显示在应用程序中(我不明白为什么它在被 10 个点限制时离顶部这么远):
现在我显然想删除底部约束并用它的高度来约束它,这样我就可以拥有多个集合视图(可能通过使用表视图),所以我删除了视图底部的约束并添加了 250 点的高度限制:
导致应用看起来像这样的原因:
为什么?我猜这与视图控制器代码的这一部分有关:
extension HomeViewController: UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let m = min(UIScreen.main.bounds.size.width, UIScreen.main.bounds.size.height)
return CGSize(width: m, height: m*0.75)
}
我想保持集合视图的宽度与视图的宽度相同,所以宽度很好,只是这里的高度。当我尝试将高度设置为 250 的恒定值(与高度约束相同)时,它会执行相同的操作(仅显示一半),但会稍微缩小视频。我可以改变什么?
【问题讨论】:
-
给你的
PlayerCell一个背景颜色,这样你就可以在运行时轻松地看到它的框架。使用Debug View Hierarchy在运行时检查布局,以便您可以准确地看到放置在哪里。此外,您还没有展示如何限制单元格元素。单元格是否有可能是 250 磅高(当您将m*0.75更改为250.0时,但 内容 的大小却是您意想不到的? -
@DonMag 我会尝试...两秒钟...我会将其添加到我的问题中。你的意思是图像和标签是内容?您还认为这与该代码有关吗?
标签: ios swift uitableview uiview uicollectionview