0

我有这个结构。滚动视图-> UICollectionview + 标签

此视图控制器具有项目数组(BlockItem)。在 scrollViewDidScroll 我更改当前测试标签(描述)

func scrollViewDidScroll(_ scrollView:UIScrollView)
{
    let midX:CGFloat = scrollView.bounds.midX
    let midY:CGFloat = scrollView.bounds.midY
    let point:CGPoint = CGPoint(x:midX, y:midY)
    guard

        let indexPath:IndexPath = collectionView.indexPathForItem(at:point)

        else
    {
        return
    }

    let currentPage:Int = indexPath.item
    if let found = items.first(where: {$0.id == String(block[currentPage])}) {
        description.text = found.description
    }

}

当我移动我的 collectionview 单元格并从下一个单元格出现时,我想要我的描述标签的主要问题将是一起移动。换句话说,如果我向左滚动,我的描述应该与单元格一起移动,即向左移动并出现在屏幕的右侧。

我怎样才能做到这一点?我知道我可以制作一个大的collectionview,但我需要只有图像部分应该是可滚动的,而不是整个块。

在此处输入图像描述

这是我想要实现的目标

在此处输入图像描述

这是视频示例:仅当我在图像区域上滑动时滚动才有效,并且当我向下滚动页面时不起作用 https://drive.google.com/file/d/1kl1GYgXvK4bL3toTfOvpxF2WqS56pQO9/view?usp=sharing

4

1 回答 1

0

你确实是这么说的:

“当我移动我的收藏视图单元格并从下一个单元格出现时,我想要我的描述标签的主要问题将是一起移动。”

如果您希望您的描述标签一起移动,只需将它们包含在您的收藏单元格中。从你那里很清楚

我不明白为什么你需要将它分开,但你希望它从新单元格中滑出。

如果您坚持要归档标签,而不是在滚动视图中,则使用 2 标签

此单元格的一个标签和一个标签将来自滚动方向,您可以通过手动创建来存档。这是向左滑动滚动的简单代码

UIView.animate(withDuration: 0.5) {
   //insert your label animation 
   //current label moved with the scroll to left
   //create a new label from the outer right of the current view, scroll it to the middle of your view
} 

但要获得良好的动画或滚动支持将是一项艰巨的工作。

于 2019-08-15T06:03:07.393 回答