ios 手工創(chuàng)建UIWindow

在開發(fā)過程中窟扑,某些時我們希望將整個頁面放在最上層乏盐,這個時候我們就需要手動創(chuàng)建一個UIWindow痊土。

我們創(chuàng)建一個繼承自UIWindow的類:

PasswordInputWindow.h ?文件

@interfacePasswordInputWindow :UIWindow

{

UIView* view;

UILabel* label;

}

+ (PasswordInputWindow*)shareInstance;

- (void)show;

@end

.........................................................................................................

PasswordInputWindow.m ?文件

#import"PasswordInputWindow.h"

#define SCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height

#define SCREEN_WIDTH[UIScreen mainScreen].bounds.size.width

@implementationPasswordInputWindow

{

UITextField* _textField;

UIWindow* _window;

}

+ (PasswordInputWindow*)shareInstance{

NSLog(@"1");

staticidsharedInstance =nil;

staticdispatch_once_tonceToken;

dispatch_once(&onceToken, ^{

sharedInstance = [[selfalloc]initWithFrame:[UIScreenmainScreen].bounds];

});

returnsharedInstance;

}

- (id)initWithFrame:(CGRect)frame{

NSLog(@"3");

self= [superinitWithFrame:frame];

if(self) {

UILabel* labell = [[UILabelalloc]initWithFrame:CGRectMake(10,50,200,20)];

labell.text=@"請輸入密碼:";

[selfaddSubview:labell];

UITextField* textField = [[UITextFieldalloc]initWithFrame:CGRectMake(10,80,200,20)];

textField.backgroundColor= [UIColorwhiteColor];

[textFieldsetAutocorrectionType:UITextAutocorrectionTypeNo];

[textFieldsetAutocapitalizationType:UITextAutocapitalizationTypeNone];

textField.secureTextEntry=YES;

[selfaddSubview:textField];

UIButton* button= [[UIButtonalloc]initWithFrame:CGRectMake(10,110,200,44)];

[buttonsetBackgroundColor:[UIColorblueColor]];

button.titleLabel.textColor= [UIColorblackColor];

[buttonsetTitle:@"確定"forState:UIControlStateNormal];

[buttonaddTarget:selfaction:@selector(completeButtonPressed:)forControlEvents:UIControlEventTouchUpInside];

[selfaddSubview:button];

self.backgroundColor= [UIColoryellowColor];

_textField= textField;

}

returnself;

}

- (void)show{

[selfmakeKeyWindow];

self.hidden=NO;

}

- (void)completeButtonPressed:(id)sender{

if([_textField.textisEqualToString:@"abcd"]) {

[_textFieldresignFirstResponder];

[selfresignKeyWindow];

self.hidden=YES;

}else{

[selfshowErrorAlertView];

}

}

- (void)showErrorAlertView{

[selfupdataWindows];

}

-(void)updataWindows {

_window= [UIApplicationsharedApplication].keyWindow;

view= [[UIViewalloc]initWithFrame:CGRectMake(40,SCREEN_HEIGHT/2-40,SCREEN_WIDTH-80,80)];

view.backgroundColor= [UIColorblackColor];

view.layer.masksToBounds=YES;

view.layer.cornerRadius=8.0f;

label= [[UILabelalloc]initWithFrame:CGRectMake(0,0,view.bounds.size.width,80)];

label.numberOfLines=3;

label.text=@"密碼錯誤,正確密碼是abcd ";

label.textColor= [UIColorwhiteColor];

label.textAlignment=NSTextAlignmentCenter;

[_windowaddSubview:view];

[viewaddSubview:label];

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2*NSEC_PER_SEC)),dispatch_get_main_queue(), ^{

//2秒以后移除

[viewremoveFromSuperview];

});

}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event{

[selfendEditing:YES];

}

@end

...................................................................................................

ViewController.m文件

#import"ViewController.h"

#import"PasswordInputWindow.h"

@interfaceViewController()

{

UIWindow* _window;

}

@end

@implementationViewController

- (void)viewDidLoad {

[superviewDidLoad];

}

- (IBAction)ClickOnButton:(UIButton*)sender {

[[PasswordInputWindowshareInstance]show];

}

- (void)hideWindow:(UIGestureRecognizer*)gest{

_window.hidden=YES;

_window=nil;

}

@end

第一次發(fā)表文章 ?還請多多指教!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市拦赠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌葵姥,老刑警劉巖荷鼠,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異榔幸,居然都是意外死亡允乐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進(jìn)店門削咆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來牍疏,“玉大人,你說我怎么就攤上這事拨齐×墼桑” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵瞻惋,是天一觀的道長厦滤。 經(jīng)常有香客問我,道長歼狼,這世上最難降的妖魔是什么掏导? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮羽峰,結(jié)果婚禮上趟咆,老公的妹妹穿的比我還像新娘。我一直安慰自己梅屉,他們只是感情好值纱,可當(dāng)我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著履植,像睡著了一般计雌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上玫霎,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天凿滤,我揣著相機(jī)與錄音,去河邊找鬼庶近。 笑死翁脆,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鼻种。 我是一名探鬼主播反番,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了罢缸?” 一聲冷哼從身側(cè)響起篙贸,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎枫疆,沒想到半個月后爵川,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡息楔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年寝贡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片值依。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡圃泡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出愿险,到底是詐尸還是另有隱情颇蜡,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布拯啦,位于F島的核電站澡匪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏褒链。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一疑苔、第九天 我趴在偏房一處隱蔽的房頂上張望甫匹。 院中可真熱鬧,春花似錦惦费、人聲如沸兵迅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恍箭。三九已至,卻和暖如春瞧省,著一層夾襖步出監(jiān)牢的瞬間扯夭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工鞍匾, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留交洗,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓橡淑,卻偏偏與公主長得像构拳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容