
最終效果
仔細(xì)觀察,可以發(fā)現(xiàn)綠色控件在移動(dòng)過(guò)程中與文字重合的地方字體顏色會(huì)跟著改變。
其實(shí),界面的結(jié)構(gòu)是這樣的。

結(jié)構(gòu)圖
使用CADisplayLink監(jiān)聽(tīng)綠色控件的實(shí)時(shí)狀態(tài)
CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(updateTopView)];
[link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
對(duì)頂層控件進(jìn)行裁剪
- (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;
}
源碼下載地址