ToggleView 是一款易于使用的原始切换按钮。
(见/Sample下的Xcode示例项目)
ToggleView的主要元素包括:
其中,“ToggleView”是一个包含可以左右移动的背景图像的
ToggleView目前有2种类型可供选择。通过改变参数toggleViewType可以轻松设置。
toggleViewType:ToggleViewTypeWithLabel:ToggleView的左右带有可点击标签的类型
toggleViewWithLabel = [[ToggleView alloc]initWithFrame:frame toggleViewType:ToggleViewTypeWithLabel toggleBaseType:ToggleBaseTypeDefault toggleButtonType:ToggleButtonTypeDefault];
toggleViewWithLabel.toggleDelegate = self;
toggleViewType:ToggleViewTypeNoLabel:ToggleView的左右没有标签的类型
toggleViewWithoutLabel = [[ToggleView alloc]initWithFrame:frame toggleViewType:ToggleViewTypeNoLabel toggleBaseType:ToggleBaseTypeDefault toggleButtonType:ToggleButtonTypeDefault];
toggleViewWithoutLabel.toggleDelegate = self;
可以选定与您希望切换的状态对应的切换开关的背景。通过改变参数toggleBaseType可以轻松设置。
toggleBaseType:ToggleBaseTypeChangeImage:ToggleView选定状态时背景图像根据选定状态改变的类型
toggleViewBaseChange = [[ToggleView alloc]initWithFrame:frame toggleViewType:ToggleViewTypeNoLabel toggleBaseType:ToggleBaseTypeChangeImage toggleButtonType:ToggleButtonTypeDefault];
toggleViewBaseChange.toggleDelegate = self;
请用以下文件名替换
//change base image option
NSString *const TOGGLE_BASE_IMAGE_L = @"toggle_base_l.png";
NSString *const TOGGLE_BASE_IMAGE_R = @"toggle_base_r.png";
可以选择与您希望切换的状态对应的切换开关的按钮。通过改变参数toggleButtonType可以轻松设置。
toggleButtonType:ToggleButtonTypeChangeImage:ToggleView选定状态时背景图像根据选定状态改变的类型
toggleViewButtonChange = [[ToggleView alloc]initWithFrame:frame toggleViewType:ToggleViewTypeNoLabel toggleBaseType:ToggleBaseTypeDefault toggleButtonType:ToggleButtonTypeChangeImage];
toggleViewButtonChange.toggleDelegate = self;
请用以下文件名替换
//change button image option
NSString *const TOGGLE_BUTTON_IMAGE_L = @"toggle_button_l.png";
NSString *const TOGGLE_BUTTON_IMAGE_R = @"toggle_button_r.png";
虽然没有专门的委托,但是当
SampleViewController.h
#import "ToggleView.h"
@interface SampleViewController : UIViewController <ToggleViewDelegate>
SampleViewController.m
#pragma mark - ToggleViewDelegate
- (void)selectLeftButton
{
NSLog(@"LeftButton Selected");
}
- (void)selectRightButton
{
NSLog(@"RightButton Selected");
}
属性方面,目前只准备了切换开关的选择项。
ToggleView.h
@property (nonatomic) ToggleButtonSelected selectedButton;
实现了一个可以从外部更改选择状态的功能。
ToggleView.m
- (void)setSelectedButton:(ToggleButtonSelected)selectedButton
{
switch (selectedButton) {
case ToggleButtonSelectedLeft:
[self onLeftButton:nil];
break;
case ToggleButtonSelectedRight:
[self onRightButton:nil];
break;
default:
break;
}
}
类似于示例中显示的设计,为了在切换开关的背景和按钮之间留出一些边距,需要在按钮的设计区域中留出如下所示的透明部分。
如果希望背景和开关的外形完全吻合,这里提到的就不适用了。