最近项目中需要写复杂的表单,需要添加日期和多选框内容,所以需要弹出视图添加相关信息。这里写一个原型,用来帮助同事做复杂的表单。
模仿的效果:
实现的效果:
实现步骤如下:
创建项目iphone_sprintview创建一个继承UIView的子类SecondView创建一个SecondView.xib。下面打开SecondView.xib,做如下操作:添加视图:
在iphone_sprintviewViewController中添加相应控件的声明。
IBOutlet UIDatePicker *myDataPicker; IBOutlet UIView *myView;
控件关联。 相关的代码:#import <UIKit/UIKit.h> #import "SecondView.h" @interface iphone_sprintviewViewController : UIViewController { SecondView *mySecondView; IBOutlet UIDatePicker *myDataPicker; IBOutlet UIView *myView; } @property (nonatomic,retain) SecondView *mySecondView; @property (nonatomic,retain) UIDatePicker *myDataPicker; @property (nonatomic,retain) UIView *myView; -(IBAction)onClickButton:(id)sender; @end
#import "iphone_sprintviewViewController.h" #import <QuartzCore/QuartzCore.h> @implementation iphone_sprintviewViewController @synthesize mySecondView,myDataPicker,myView; -(void) viewDidLoad { self.mySecondView=[[SecondView alloc] init]; NSArray *array =[[NSBundle mainBundle] loadNibNamed:@"SecondView" owner:self options:nil]; self.mySecondView=[array objectAtIndex:0]; //将图层的边框设置为圆脚 self.myView.layer.cornerRadius = 8; self.myView.layer.masksToBounds = YES; //给图层添加一个有色边框 self.myView.layer.borderWidth = 8; self.myView.layer.borderColor = [[UIColor colorWithRed:0.52 green:0.09 blue:0.07 alpha:0.5] CGColor]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } - (void)viewDidUnload { self.mySecondView=nil; self.myDataPicker=nil; self.myView=nil; } - (void)dealloc { [self.myView release]; [self.mySecondView release]; [self.myDataPicker release]; [super dealloc]; } -(IBAction)onClickButton:(id)sender { if ([sender tag]==0) { [self.view addSubview:mySecondView]; }else if ([sender tag]==1) { [mySecondView removeFromSuperview]; }else { NSLog(@"==%@",self.myDataPicker.date); [mySecondView removeFromSuperview]; } } @end
源代码:http://easymorse-iphone.googlecode.com/svn/trunk/iphone.sprintview/
