自定義UIAlertView模態框

2021-07-07 08:09:45 字數 1541 閱讀 3972

在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

python from import 自定義模組

from douban250.items import douban250item python import 自定義模組 1 主程式與模組程式在同一目錄下 如下面程式結構 src mod1.py test1.py 若在程式test1.py中匯入模組mod1,則直接使用 import mod1或fr...

NC57新增自定義按鈕組步驟自定義查詢模板

第一步 按鈕介面 自定義按鈕常量 public inte ce pubuserdefbutton return btnvo public buttonvo getbuttonvo btnvo.setbusinessstatus new int return btnvo 第三步 在clientcont...

自定義 如何自定義協議

何為自定義協議,其實是相對標準協議來說的,這裡主要針對的是應用層協議 常見的標準的應用層協議如http ftp smtp等,如果我們在網路通訊的過程中不去使用這些標準協議,那就需要自定義協議,比如我們常用的rpc框架 dubbo,thrift 分布式快取 redis,memcached 等都是自定義...