IOS 自定義AlertView實現模態對話方塊

2021-06-20 22:57:55 字數 1566 閱讀 3505

在windows應用程式中,經常使用模態(model)對話方塊來和使用者進行簡單的互動,比如登入框。

在ios

應用程式中,有時我們也希望做同樣的事情。但ios的ui庫中,沒有模態對話方塊,最接近那個樣子的應該算是alertview。

但僅用alertview,我們只能做文字提示,而不能和使用者做互動。

本文將介紹如何基於alertview做定製,實現模態對話方塊的功能。以密碼修改框為例:

1. 首先,我們要繼承alertview類,在類的標頭檔案pwdmodifyview.h中,加入控制項的宣告

這裡我們把控制項都宣告為property,目的是讓外部的類可以訪問使用者輸入的資料。

#import

@inte***ce pwdmodifyview : uialertview

@property(nonatomic, retain) uitextfield* _oldpwd;    // 舊密碼輸入框

@property(nonatomic, retain) uitextfield* _newpwd;    // 新密碼輸入框

@property(nonatomic, retain) uitextfield* _cfmpwd;    // 新密碼確認框

@end

2. 在pwdmodifyview.m檔案中,需要實現兩個函式

- (id)initwithtitle:(nsstring *)title message:(nsstring *)message delegate:(id)delegate cancelbuttontitle:(nsstring *)cancelbuttontitle otherbuttontitles:(nsstring *)otherbuttontitles, ...

return self;

}// override父類的layoutsubviews方法

- (void)layoutsubviews

}// 定義alertview的大小

cgrect bounds = self.frame;

bounds.size.height = 260;

self.frame = bounds;

}3. 當需要彈出該對話方塊時,只需建立並初始化乙個pwdmodifyview物件,然後呼叫物件的show()方法即可。

pwdmodifydlg* pwdmodifydlg = [[pwdmodifyview alloc]

initwithtitle:@"密碼修改"

message:nil

delegate:self

cancelbuttontitle:@"確定"

otherbuttontitles:@"取消", nil];

[pwdmodifydlg show];

最後,附上uitextfield的建立函式

- (uitextfield*)createtextfield:(nsstring*)placeholder withframe:(cgrect)frame

摘自 linear

IOS 自定義AlertView實現模態對話方塊

在windows應用程式中,經常使用模態 model 對話方塊來和使用者進行簡單的互動,比如登入框。在ios 應用程式中,有時我們也希望做同樣的事情。但ios的ui庫中,沒有模態對話方塊,最接近那個樣子的應該算是alertview。但僅用alertview,我們只能做文字提示,而不能和使用者做互動。...

ios中自定義alert view,並實現動畫組合

工作需要,要做乙個類似於alert的view,在上面可以自己隨便畫東西,在網上找了乙個開源的例子,讀了原始碼之後,感覺對ios的view和動畫有了更深的了解,現在與大家分享。下面是其中自定義alertview和動畫頁面的主要 有我的注釋,customizedalertviewdemo created...

如何寫自定義的AlertView

如何寫自定義的alertview 效果 說明考慮到後面的可定製性以及可維護性,本人用abstractalertview定義了alertview抽象的基類,實現通過子類來完成.注 這只是粗略的寫了乙個實現,並沒有考慮到 的合理性以及精確性.原始碼 abstractalertview.h alertvi...