说明:示范如何利用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];
}