Ios 遮罩UIView下除背景之外的所有视图

Ios 遮罩UIView下除背景之外的所有视图,ios,uitableview,uiview,calayer,mask,Ios,Uitableview,Uiview,Calayer,Mask,我在UITableView中有一个透明的节标题,它应该允许单元格在其后面滚动,但显示在tableview后面的背景图像,而不是单元格。我需要一种方法,将某种剪辑遮罩应用于节标题,使其下的任何视图都透明,或者显示背景图像的适当部分作为标题的背景,并在标题移动时跟随 我已经看到了这一点,但它并不像广告中所说的那样有效,而且通常是一个糟糕的实现 我也试过: - (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetC

我在UITableView中有一个透明的节标题,它应该允许单元格在其后面滚动,但显示在tableview后面的背景图像,而不是单元格。我需要一种方法,将某种剪辑遮罩应用于节标题,使其下的任何视图都透明,或者显示背景图像的适当部分作为标题的背景,并在标题移动时跟随

我已经看到了这一点,但它并不像广告中所说的那样有效,而且通常是一个糟糕的实现

我也试过:

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);
    CGContextFillRect(context, self.frame);
    CGContextSetBlendMode(context, kCGBlendModeClear);
}
在节头的子类中,但这仅显示具有黑色背景的视图

如果你需要更多的解释,以下是我的:

以下是我想要实现的目标:


我在游戏中也做过类似的任务。SpriteKit在这方面提供了出色的性能,因为它具有内置功能

您可以将SpriteKit与UIKit混合使用,但使用SpriteKit作为背景&而不是您需要的其他方式,因为SKView不能使用透明背景


在我看来,你要么在这儿,要么去。

关于这个问题,我想到两件事。第一个问题是,您的视图层次结构可能完全错误。第二个问题是,听起来你想在UIKit中做一些高级绘图,你可能应该使用SpriteKit或其他东西。我不喜欢你试图掩盖中间的其他视图以显示背景的做法。最好是拍摄背景图像,然后再次将其放在浮动视图后面,可能会使用边界对其进行偏移。研究操纵帧和边界之间的区别。也许我应该更好地解释它:问题在于UITableView中的透明节标题,它应该允许单元格在其下方滚动,但显示背景而不是单元格。我将在原始问题中添加此信息以进行澄清。好的,然后我会按照我的建议:再次拍摄背景图像,将其应用于节标题视图,并使用边界对其进行偏移。然后需要不断移动它,因为滚动表视图时标题视图会向上移动。您是否有一些示例代码可以实现这一点?您是否了解这将如何影响性能?否则,我会认为这是一个非常有效的回答我的问题。但它肯定不会比尝试将透明遮罩应用于移动到下方的表视图单元格更复杂。我可能根本不会这么做。抱歉,无法提供任何代码示例。我有自己的工作要做。我已经在使用自定义标题视图,这不是问题所在。此外,包括SpriteKit只是为了这个不是很好。如果你需要关于这个问题的更多信息,请参阅我现在附在原始问题上的GIF。