圆角矩形的背景框(4)是用来承载按钮的元素,在它上方靠近右边缘的小太阳(2)是开关主体,它可以在底部的槽(1)的范围内左右运动,同时,为了具备装饰性,加入了不断旋转的太阳光晕(3),光晕被设计为单独的图层,它会不断的旋转,不会和其他的因素产生交叉关联。 不过,当开关关闭的时候,光晕(3)的Alpha 值会变为0,动画停止。这几个图层当中,最大的图层是背景(4),这个图层当中包含一个蒙板CAShapeLayer。 let switcherBackgroundMask = [[CAShapeLayer alloc] init]; switcherBackgroundMask.fillRule = kCAFillRuleEvenOdd; UIBezierPath* viewPath =[UIBezierPathbezierPathWithRoundedRect:self.boundscornerRadius:cornerValue]; UIBezierPath* switcherBackgroundPath = [UIBezierPath bezierPathWithRoundedRect:switcherRect cornerRadius:switcherHeight/2.0]; [viewPath appendPath:switcherBackgroundPath]; switcherBackgroundMask.path = viewPath.CGPath; 蒙板塑造了整个圆角矩形的外轮廓。在交互的控制上,还添加了两个手势识别器:UITapGestureRecognizer 是用来识别打开的动作,而UIPanGestureRecognized 是用来识别关闭的动作。 在这个动效设计过程中,想要做到自然可用的动效,动效设计师需要仔细地推敲和分割元素,在整个方案上深思熟虑,才能最终实现正确的效果。 (责任编辑:admin) |