我遇到了一个问题,我想将我添加到UICollectionViewCell
的徽章通知视图带到前面。我正在使用UICollectionViewCell
向cell.layer.borderColor = [[UIColor redColor]CGColor];
添加边框。但是当添加边框时,它会显示在徽章视图的顶部。
添加边框后:
我使用[self addSubview:self.badge];
UICollectionViewCell
将徽章视图添加到单元格
我试过[self bringSubviewToFront:self.badge];
和self.badge.layer.zPosition = 1;
,但没有帮助。我在SO上的类似帖子上找到了这些解决方案,但我认为我做错了。如果有人能指出这一点,我会很高兴。谢谢。
修改
我根据建议做了一些改动,并[self.contentView addSubview:self.badge];
代替[self addSubview:self.badge];
。当我调试视图并检查所有视图层时,它确实在边框顶部显示徽章,但在模拟器中不是这种情况。
答案 0 :(得分:2)
正如@iphonic所说,你无法使用相同的视图绘制边框并包含徽章。
尝试设置这些视图层次结构:
Cell
|- ContentView
|- Main View (Apply border here)
|- All you content
|- Badge
答案 1 :(得分:0)
您可以为自定义UICollectionViewCell
边框创建特定的子视图,因此当您需要显示该边框时,您可以轻松地将徽章放在前面。
以编程方式,它可能是这样的(在您的自定义UICollectionViewCell
)
UIView* border = [[UIView alloc] initWithFrame:cell.frame];
border.tag = 1001;
border.layer.borderColor = [[UIColor redColor]CGColor];
[self addSubview:border];
当您需要提前添加并显示徽章时
[self addSubview:self.badge];
[self bringSubviewToFront:[self viewWithTag:1001]];
[self bringSubviewToFront:self.badge];
答案 2 :(得分:0)
为徽章使用单独的CALayer。您似乎在同一层中绘制徽章和边框,因此合并了两个图像。