tvOS UIImageView焦点阴影已剪切

时间:2018-07-30 14:17:00

标签: swift uicollectionview uicollectionviewcell tvos

我在包含两个组件的UICollectionView中有一个UICollectionViewCell

  • 1个UIImageView
  • 1个UIView

理想情况下,UIView将包含几个标签,并将以下属性设置为默认值:

  • $('body').on('click', '.remove', function () { var that = $(this).closest('div').find('.class-i-want-to-select'); console.log(that); });
  • backgroundColor = .clear

UICollectionView的isHidden = true设置为clipsToBounds

在UICollectionView的false中,我正在使用delegate函数来确定接下来哪个单元格将获得焦点,然后取消隐藏UIView。

由于UIImageView将didUpdateFocusIn设置为adjustsImageWhenAncestorFocused,因此当tvOS自动应用缩放和视差效果时,tvOS将绘制一个阴影。

如下面两张图片所示(第二张图片的UIView的true设置为backgroundColor清晰可见),阴影被单元格中属于UIView的空白空间裁剪即使在它旁边,即使UIView已经被隐藏。

有什么办法可以解决这个问题?

编辑:添加了第三张图像,当从.xib中完全删除UIView时,该阴影完美显示了阴影。

UIView with *clear* backgroundColor

UIView with *black* backgroundColor

UICollectionViewCell without UIView

2 个答案:

答案 0 :(得分:0)

好吧,事实证明我是个傻瓜。

我忘了我已经将Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Form2.DataGridView1.Rows.Clear() Form2.DataGridView2.Rows.Clear() Form2.DataGridView3.Rows.Clear() Form2.DataGridView4.Rows.Clear() Form2.DataGridView5.Rows.Clear() Me.Hide() Form2.show() 的底部约束设置为锚定在其下方的UIView的顶部。

隐藏UIImageView的最终结果导致UIView找出UIImageView的底部,从而导致裁剪问题。

我现在已经将UICollectionViewCell限制在一个固定的高度,问题已经解决!

答案 1 :(得分:0)

从tvOS 11开始,无需将视图约束绑定到UIImageView约束即可获得效果。

您可以通过使用UIImageView的新属性overlayContentView来获得这种效果。

链接到文档:

https://developer.apple.com/documentation/uikit/uiimageview/2882128-overlaycontentview

从以下WWDC视频的15:00分钟起,可以找到更详细的解释:

https://developer.apple.com/videos/play/wwdc2017/209/

如果Apple提供的用于获得这种效果的方法还不足以满足您的特定情况,我还建议您使用这种出色的第三方库,该库基本上允许在任何UIView中获得视差效果。

https://github.com/PGSSoft/ParallaxView