Ios UIScrollView-将视图向前移动,但在滚动指示器下方

Ios UIScrollView-将视图向前移动,但在滚动指示器下方,ios,objective-c,uiscrollview,Ios,Objective C,Uiscrollview,我正在使用从UIScrollView继承的自定义视图。我遇到的问题是添加一个UILabel,它应该显示在“顶部”,在其他视图前面。它可以工作,但不幸的是它也掩盖了滚动指示器 如您所见,滚动指示器被遮挡。我不想禁用滚动指示器 我将视图直接添加到UIScrollView: UILabel *subsection = [[UILabel alloc] initWithFrame:CGRectMake(0, y * h, [self totalContentWidth], [tableVie

我正在使用从UIScrollView继承的自定义视图。我遇到的问题是添加一个UILabel,它应该显示在“顶部”,在其他视图前面。它可以工作,但不幸的是它也掩盖了滚动指示器

如您所见,滚动指示器被遮挡。我不想禁用滚动指示器

我将视图直接添加到UIScrollView:

UILabel *subsection = [[UILabel alloc] initWithFrame:CGRectMake(0, y * h, 
    [self totalContentWidth], [tableViewDelegate rowHeight])];
[subsection setText:subsectionName];
[subsection setTextAlignment:NSTextAlignmentCenter];

[subSectionRows setValue:subsection forKey:key];

[self addSubview:subsection];
然后把他们带到前线

- (void) bringSubsectionsToFront {   
    for (UIView* row in [self.subSectionRows allValues]) {
        [self bringSubviewToFront:row];
    }
}
我对这种行为感到困惑。如果我看一下所有UIScrollView子视图的
UIView.layer.zPosition
,它们都是相同的

如果我调整
将subsectionstofront
方法改为将标签移动到包含网格线的视图前面,则行为是相同的

查看一些行为正常的内部视图类,它们似乎是通过以下方式添加到滚动视图中的:
[self-insertSubview:cell-atIndex:0]

我错过了什么

解决方案: 维雷克说,如果我真的愿意,我可以找到酒吧。所以我在一个合适的点上迭代了子视图列表,果然,它们就在那里。对象的顺序如下:

CustomCell
...
UIImageView
UIImageView
CustomBorderView
UILabel
UILabel
假设这是z排序,难怪我的标签总是在顶部


解决方案变得简单;在自定义单元格后添加UILabel。此解决方案之所以有效,是因为自定义表在索引0处添加了CustomCells,我相信这会使滚动指示器显示在CustomCells之后。如果这个假设成立,我可以相对于CustomCells对其他视图进行重新排序,从而达到我想要的分层效果。

最简单的方法是使用中间UIView,称之为“contentView”,其子视图是您想要引入的视图

如果该contentView是scrollView中的内容,则它将停留在滚动指示器的“下方”,无论您将哪个contentView子对象带到前面

另一种选择是扫描scrollView以查找滚动指示器(你会找到它们!),但这是一种兼容性风险,因为你永远不知道苹果是否/何时会根据一些新的(更平坦的…)设计范式决定移除/重塑/重新定位它们