是否可以在透明节标题后面“隐藏”UITableViewCell?

时间:2018-03-26 18:30:51

标签: ios swift xcode

我的iOS项目中有一个使用图像作为背景的tableview。图像不滚动,它是静态的。因此我也有透明单元格和节标题。
现在我的问题是如何让(透明)单元格(隐藏)或“消失”在(也是透明的)节标题后面? 可能吗?

Screenshot

1 个答案:

答案 0 :(得分:0)

在您的自定义单元格上

public func maskCell(fromTop margin: CGFloat) {
    layer.mask = visibilityMask(withLocation: margin / frame.size.height)
    layer.masksToBounds = true
}

private func visibilityMask(withLocation location: CGFloat) -> CAGradientLayer {
    let mask = CAGradientLayer()
    mask.frame = bounds
    mask.colors = [UIColor.white.withAlphaComponent(0).cgColor, UIColor.white.cgColor]
    let num = location as NSNumber
    mask.locations = [num, num]
    return mask
}

和您ViewController UIScrollViewDelegate

func scrollViewDidScroll(_ scrollView: UIScrollView) {
     for cell in self.lessonsTableView.visibleCells {
         let paddingToDisapear = CGFloat(25)

         let hiddenFrameHeight = scrollView.contentOffset.y + paddingToDisapear - cell.frame.origin.y
         if (hiddenFrameHeight >= 0 || hiddenFrameHeight <= cell.frame.size.height) {
             if let customCell = cell as? LessonTableViewCell {
                 customCell.maskCell(fromTop: hiddenFrameHeight)
             }
         }

     }
 }