事实证明,您可以使用以下项目创建自定义 UISwitch:
- 一个 UIScrollView
- 一个 UIButton
- 两个 UILabel
- 背景图像
- 布尔值
首先,您需要将 QuartzCore.framework 添加到您的项目和#import <QuartzCore/QuartzCore.h>
视图控制器中。
接下来使用 Interface Builder 将 UIScrollView 添加到您的视图中。ScrollView 将是您的自定义 UISwitch。接下来将按钮和两个标签添加到您的 ScrollView。一个标签表示“是”,另一个标签表示“否”。
将图像添加到按钮并将其类型设置为自定义。这是我使用的图像:![在此处输入图像描述](https://i.stack.imgur.com/KjUcu.png)
将标签放置在图像的蓝色和白色区域上。调整 ScrollView 使其足够大以显示图像的蓝色部分和拇指旋钮。
将以下行添加到 viewDidLoad:
self.mySwitch.layer.cornerRadius = 13.5;
mySwitch 是 ScrollView 的名称,13.5 是 ScrollView 高度的一半。上面的语句将 ScrollView 更改为像 UISwitch 一样具有圆形末端。
要使自定义开关处于活动状态,您需要将按钮“Touch Up Inside”事件绑定到 IBAction。这是我在事件处理程序中使用的代码:
-(IBAction)mySwitchButton:(id)sender {
self.myValue = !self.myValue;
CGPoint scrollPoint = CGPointMake((self.myValue)? 43.0: 0, 0.0);
[mySwitch setContentOffset:scrollPoint animated:YES];
}
其中 myValue 是包含开关状态的布尔变量,而 43.0 是您必须移动图像以将开关置于关闭位置的点数。
这就是它的全部!