我正在使用從UIScrollView繼承的自定義視圖。我遇到的問題是添加一個應顯示在其他視圖前面的「頂部」的UILabel。它的工作原理,但不幸的是,它也覆蓋了滾動指標。UIScrollView - 將視圖移動到前面,但在滾動指示器之下
正如你所看到的,滾動指示被遮蔽。我不想禁用滾動指標。
我直接添加欣賞到的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
,它們都是一樣的。
如果我將bringSubsectionsToFront
方法改爲移動包含網格線的視圖前面的標籤,則其行爲是相同的。
縱觀一些內部視圖類,其行爲作品,它看起來好像他們正在加入到與滾動視圖:[self insertSubview:cell atIndex:0];
缺少什麼我在這裏?
解決方案: verec表示,如果我真的想找到酒吧,我可以找到酒吧。所以我在適當的位置迭代了子視圖列表,果然,他們在那裏。對象順序如下:
CustomCell
...
UIImageView
UIImageView
CustomBorderView
UILabel
UILabel
假設這是z排序,難怪我的標籤總是在最上面。
解決方案變得簡單;在CustomCells之後添加UILabel。此解決方案僅適用於自定義表在索引0處添加CustomCells,我相信這會使滾動指示符出現在CustomCells之後。如果這個假設成立,我可以重新排序其他視圖相對於CustomCells,實現我想要的分層效果。