UITableView顶部和底部有褪色细胞 - 快速

时间:2015-11-26 12:02:07

标签: ios swift uitableview uiscrollview

我需要我的表视图在滚动时淡出其顶部和底部单元格。我尝试了一些涉及渐变和遮罩的解决方案,但没有工作,从透明到白色的渐变都有黑色。有没有人有办法在swift中实现这一目标?

1 个答案:

答案 0 :(得分:1)

您可以使用UITableViewDelegate协议中定义的某些方法来达到预期效果。首先,您需要知道单元格主子视图contentView添加所有其他子视图是它的子视图。您需要做的是在contentView方法中将cellForRowAtIndexPath:indexPath: alpha设置为0。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
        cell.textLabel?.text = "Fade Cell"
        cell.contentView.alpha = 0 // Here we set the alpha of the content view
        return cell
    }

如果您现在运行您的应用程序,您将拥有纯白色单元格。我们现在唯一需要知道的是何时显示单元格,因此我们可以显示contentView。第二种UITableViewDelegate协议方法现在派上用场了。

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
        UIView.animateWithDuration(0.4) {
            cell.contentView.alpha = 1
        }
    }

当准备显示单元格时调用此委托方法,并且它是将contentView alpha属性设置为1的理想位置。