我尝试使自定义切换与UISwitch
完全相同。可以切换,按下按钮或拖动按钮。请建议我一个想法。
答案 0 :(得分:1)
您可以使用bezier路径绘制自定义开关。
UIView的子类,在drawRect方法中,使用此方法。
这是一个使用bezier路径绘制的简单开关:
- (void)drawSwitch: (CGRect)frame thumbPos: (CGFloat)thumbPos
{
//// Color Declarations
UIColor* yesColor = [UIColor colorWithRed: 0.237 green: 0.811 blue: 0.624 alpha: 1];
UIColor* noColor = [UIColor colorWithRed: 0.8 green: 0.32 blue: 0.32 alpha: 1];
//// Variable Declarations
UIColor* switchColor = thumbPos > 20 ? yesColor : noColor;
//// Rectangle Drawing
UIBezierPath* rectanglePath = [UIBezierPath bezierPathWithRoundedRect:yourRect cornerRadius: 20];
[switchColor setFill];
[rectanglePath fill];
//// Oval Drawing
UIBezierPath* ovalPath = [UIBezierPath bezierPathWithOvalInRect: CGRectMake(thumbPos, 2.5, 35, 35)];
[UIColor.whiteColor setFill];
[ovalPath fill];
}
拇指指针是开关中白色圆圈的位置。您可以在滑动手势上更改此设置,并通过更改此值为交换机设置动画。
开关颜色将根据thumbPos进行更改。
答案 1 :(得分:0)
您可以使用与UISwitch相同的两个图像,并在点击UI按钮时更改设置图像。
答案 2 :(得分:0)
您可以添加按钮并为状态设置图像。 您必须为两种状态设置图像 - > 1:选择状态 2:默认状态
并在此按钮的操作方法中更改状态。