动画程序员iOS Developer

iOS标签切换视差效果

2017-04-28  本文已影响283人  HJaycee
最终效果

仔细观察,可以发现绿色控件在移动过程中与文字重合的地方字体颜色会跟着改变。

其实,界面的结构是这样的。

结构图

使用CADisplayLink监听绿色控件的实时状态

CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(updateTopView)];
[link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];

对顶层控件进行裁剪

- (void)updateTopView {
    CALayer *layer = self.moveView.layer.presentationLayer;
    if (!layer) {
        layer = self.moveView.layer;
    }
    
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
    CGRect maskRect = layer.frame;
    CGPathRef path = CGPathCreateWithRect(maskRect, NULL);
    maskLayer.path = path;
    CGPathRelease(path);
    self.topView.layer.mask = maskLayer;
}

源码下载地址

上一篇下一篇

猜你喜欢

热点阅读