今天遇到一个问题,需要做一个这样的效果:
这部分我是用collectionview做的,这样做的方便之处稍后再提。
其他的都很顺利,就是做到文字后面的那个灰色的view的时候遇到了问题,我写了好多方法都没能成功的把这个view放在collectionview和cell之间。
[self.titleCollectionView insertSubview:shadowImageView atIndex:0];
这样是无效的,view依然在cell的上面。查了一些资料,然后找到这样一个方法,只要再加一句代码:shadowImageView.layer.zPosition = -1;
[self.titleCollectionView insertSubview:shadowImageView atIndex:0];
那么layer.zPosition 这是一个什么属性呢?
view可以通过设置zPosition属性来固定层级关系,默认是0,设置为-1的话就在最下层,值越大层级的关系就越高。
为什么用collection view写这个功能呢,collectonview有个方法,可以让选中的item停留在上,下,左,右,水平中间,竖直中间。这个功能就需要让选择的item停留在水平中间,不用我们自己再去计算坐标。
- (void)scrollToItemAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UICollectionViewScrollPosition)scrollPosition animated:(BOOL)animated;
UICollectionViewScrollPositionTop = 1 << 0,
UICollectionViewScrollPositionCenteredVertically = 1 << 1,
UICollectionViewScrollPositionBottom = 1 << 2,
// Likewise, the horizontal positions are mutually exclusive to each other.
UICollectionViewScrollPositionLeft = 1 << 3,
UICollectionViewScrollPositionCenteredHorizontally = 1 << 4,
UICollectionViewScrollPositionRight = 1 << 5