我正在为 iPhone 创建一个自定义开/关切换开关(类似于标准开关),我正处于设置滑块蒙版的[[myView layer] setMask:maskLayer]
位置,但调用设置蒙版层的相对位置它被遮罩的层,而不是相对于遮罩层的容器层。对于这个特定的场景,遮罩层的位置需要相对于它的包含层进行设置,因为切换滑块将在遮罩下方移动并且遮罩应该保持静止。
无需对蒙版和切换滑块组件进行动画处理即可达到所需的效果,有人知道如何进行这项工作吗?这是我到目前为止所得到的:
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddEllipseInRect(path, nil, CGRectMake(0, 0, 13, 13));
CGPathAddEllipseInRect(path, nil, CGRectMake(30, 0, 13, 13));
CGPathAddRect(path, nil, CGRectMake(6, 0, 32, 13));
[maskLayer setPath:path];
[maskLayer setFillColor:[[UIColor greenColor] CGColor]];
[[self layer] addSublayer:maskLayer];
[maskLayer setPosition:CGPointMake(2, 2)];
[self addSubview:toggleView];
[[toggleView layer] setMask:maskLayer];