iphone底部出现时间选择器(一)

    技术2022-05-19  23

     

    我们用iphone控件实现form表单时,有时需要添加时间控件,一般的做法是添加按钮,点击按钮从底部出现时间选择器。如下图:

    实现代码:

     

    #import "iphone_datapicketViewController.h" @implementation iphone_datapicketViewController @synthesize myDatePicker , myView ; - ( void ) viewDidLoad {     [ super viewDidLoad ]; } - ( void ) didReceiveMemoryWarning {     [ super didReceiveMemoryWarning ]; } - ( void ) viewDidUnload {     self . myDatePicker = nil ;     self . myView = nil ; } - ( void ) dealloc {     [ self . myDatePicker release ];     [ self . myView release ];     [ super dealloc ]; } -( IBAction ) onClickButton :( id ) sender {     [ self showDatePick ]; } -( IBAction ) onClickCloseButton :( id ) sender {     [ self dissDatePick ]; } -( void ) showDatePick {     if ( self . myView . superview == nil )     {         [ self . view . window addSubview : self . myView ];     }       CGRect screenRect = [[ UIScreen mainScreen ] applicationFrame ];     CGSize pickerSize = [ self . myView sizeThatFits : CGSizeZero ];     CGRect startRect = CGRectMake ( 0.0 ,                                   screenRect . origin . y + screenRect . size . height ,                                   pickerSize . width , pickerSize . height );     self . myView . frame = startRect ;     CGRect pickerRect = CGRectMake ( 0.0 ,                                    screenRect . origin . y + screenRect . size . height pickerSize . height ,                                    pickerSize . width ,                                    pickerSize . height );     [ UIView beginAnimations : nil context : NULL ];     [ UIView setAnimationDuration : 0.3 ];     [ UIView setAnimationDelegate : self ];     self . myView . frame = pickerRect ;     CGRect newFrame = self . view . frame ;     newFrame . size . height -= self . myView . frame . size . height ;     self . view . frame = newFrame ;     [ UIView commitAnimations ]; } -( void ) dissDatePick {     CGRect screenRect = [[ UIScreen mainScreen ] applicationFrame ];     CGRect endFrame = self . myView . frame ;     endFrame . origin . y = screenRect . origin . y + screenRect . size . height ;     [ UIView beginAnimations : nil context : NULL ];     [ UIView setAnimationDuration : 0.3 ];     [ UIView setAnimationDelegate : self ];     self . myView . frame = endFrame ;     [ UIView commitAnimations ];     CGRect newFrame = self . view . frame ;     newFrame . size . height += self . myView . frame . size . height ;     self . view . frame = newFrame ; } @end

    还有利用ib创建控件和相连。

    源代码:http://easymorse-iphone.googlecode.com/svn/trunk/iphone.datapicket/


    最新回复(0)