【代码笔记】iOS-自定义选择框
一,效果图。
二,工程图。
三,代码。
RootViewController.h
#import <UIKit/UIKit.h> #import "CYCustomMultiSelectPickerView.h" @interface RootViewController : UIViewController <CYCustomMultiSelectPickerViewDelegate> { CYCustomMultiSelectPickerView *multiPickerView; UILabel *pickLabel; } @end
RootViewController.m
#import "RootViewController.h" @interface RootViewController () @end @implementation RootViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.title=@"ALPickerView"; pickLabel=[[UILabel alloc]initWithFrame:CGRectMake(10, 100, 100, 50)]; pickLabel.backgroundColor=[UIColor orangeColor]; pickLabel.textAlignment=NSTextAlignmentCenter; [self.view addSubview:pickLabel]; } //随意点击任意处,弹出选择框 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [self initPickerView]; } -(void)initPickerView { for (UIView *view in self.view.subviews) { if ([view isKindOfClass:[CYCustomMultiSelectPickerView class]]) { [view removeFromSuperview]; } } multiPickerView = [[CYCustomMultiSelectPickerView alloc] initWithFrame:CGRectMake(0,[UIScreen mainScreen].bounds.size.height - 260-20, 320, 260+44)]; multiPickerView.backgroundColor = [UIColor clearColor]; multiPickerView.entriesArray = [NSMutableArray arrayWithObjects:@"one",@"two",@"three",@"four",@"five",@"six",@"seven", nil]; multiPickerView.entriesSelectedArray = [NSMutableArray arrayWithObject:@"one"]; multiPickerView.multiPickerDelegate = self; [self.view addSubview:multiPickerView]; [multiPickerView pickerShow]; } #pragma -mark -picker delegate //点击确定要执行的操作 -(void)returnChoosedPickerString:(NSMutableArray *)selectedEntriesArr { NSLog(@"returnChoosedPickerString"); NSMutableArray* newArray = [NSMutableArray array]; for (NSString* str in selectedEntriesArr) { [newArray addObject:str]; } NSString *endStr = [newArray componentsJoinedByString:@","]; pickLabel.text=endStr; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end