说明:示范如何利用AlertView来制作系统登入的介面
程式碼:
CustomAlertViewViewController.h
#import <UIKit/UIKit.h> //記得加入UIAlertViewDelete @interface CustomAlertViewViewController : UIViewController<UIAlertViewDelegate> { UIAlertView *myAlertView; } @property (nonatomic,retain) UIAlertView *myAlertView; -(IBAction) buttonPressed:(id)sender; @end CustomAlertViewViewController.m -(IBAction) buttonPressed:(id)sender{ myAlertView=[[UIAlertView alloc] initWithTitle:@"系統登入" message:nil delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"登入",nil]; [myAlertView show]; [myAlertView release]; } - (void)willPresentAlertView:(UIAlertView *)alertView { CGRect frame = alertView.frame; if( alertView==myAlertView ) { frame.origin.y -= 120; frame.size.height += 80; alertView.frame = frame; for( UIView * view in alertView.subviews ) { //列舉alertView中所有的物件 if( ![view isKindOfClass:[UILabel class]] ) { //若不UILable則另行處理 if (view.tag==1) { //處理第一個按鈕,也就是 CancelButton CGRect btnFrame1 =CGRectMake(30, frame.size.height-65, 105, 40); view.frame = btnFrame1; } else if (view.tag==2){ //處理第二個按鈕,也就是otherButton CGRect btnFrame2 =CGRectMake(142, frame.size.height-65, 105, 40); view.frame = btnFrame2; } } } //加入自訂的label及UITextFiled UILabel *lblaccountName=[[UILabel alloc] initWithFrame:CGRectMake( 30, 50,60, 30 )];; lblaccountName.text=@"帳號:"; lblaccountName.backgroundColor=[UIColor clearColor]; lblaccountName.textColor=[UIColor whiteColor]; UITextField *accoutName = [[UITextField alloc] initWithFrame: CGRectMake( 85, 50,160, 30 )]; accoutName.placeholder = @"帳號名稱"; accoutName.borderStyle=UITextBorderStyleRoundedRect; UILabel *lblaccountPassword=[[UILabel alloc] initWithFrame:CGRectMake( 30, 85,60, 30 )];; lblaccountPassword.text=@"密碼:"; lblaccountPassword.backgroundColor=[UIColor clearColor]; lblaccountPassword.textColor=[UIColor whiteColor]; UITextField *accoutPassword = [[UITextField alloc] initWithFrame: CGRectMake( 85, 85,160, 30 )]; accoutPassword.placeholder = @"登入密碼"; accoutPassword.borderStyle=UITextBorderStyleRoundedRect; //輸入的資料以星號顯示(密碼資料) accoutPassword.secureTextEntry=YES; [alertView addSubview:lblaccountName]; [alertView addSubview:accoutName]; [alertView addSubview:lblaccountPassword]; [alertView addSubview:accoutPassword]; } } - (void)dealloc { [myAlertView release]; [super dealloc]; }