ToggleView 0.0.1

ToggleView 0.0.1

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
释放最后发布2014年12月

未命名 维护。



  • SOMTD

ToggleView 是一款易于使用的原始切换按钮。
(见/Sample下的Xcode示例项目) toggleView_design1

ToggleView的主要元素包括:

  • ToggleView
  • ToggleButton
  • ToggleBase

其中,“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;

ToggleBase(切换开关的背景)类型

可以选定与您希望切换的状态对应的切换开关的背景。通过改变参数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";

ToggleBase(切换开关的按钮)类型

可以选择与您希望切换的状态对应的切换开关的按钮。通过改变参数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";

ToggleViewDelegate方法实现

虽然没有专门的委托,但是当改变按钮状态时,也能接收到状态更改。

SampleViewController.h

#import "ToggleView.h"
@interface SampleViewController : UIViewController <ToggleViewDelegate>

SampleViewController.m

#pragma mark - ToggleViewDelegate

- (void)selectLeftButton
{
    NSLog(@"LeftButton Selected");
}

- (void)selectRightButton
{
    NSLog(@"RightButton Selected");
}

TogleView的属性

属性方面,目前只准备了切换开关的选择项。

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;
    }
}

设计上的注意事项

类似于示例中显示的设计,为了在切换开关的背景和按钮之间留出一些边距,需要在按钮的设计区域中留出如下所示的透明部分。

如果希望背景和开关的外形完全吻合,这里提到的就不适用了。

toggleView_design2