IOS學習:用UIWindow自訂AlertView(最基本代碼)

來源:互聯網
上載者:User

[cpp]
//  
//  ABCustomAlertView.h  
//  KnowledgeChoice  
//  
//  Created by  on 13-6-19.  
//  Copyright (c) 2013年 DoubleMan. All rights reserved.  
//  自訂相應的控制項及代理就可以用了。。  
 
#import <UIKit/UIKit.h>  
 
@interface ABCustomAlertView : UIWindow 
 
// 顯示  
- (void)show; 
// 消失  
- (void)dismiss; 
 
@end 

//
//  ABCustomAlertView.h
//  KnowledgeChoice
//
//  Created by  on 13-6-19.
//  Copyright (c) 2013年 DoubleMan. All rights reserved.
//  自訂相應的控制項及代理就可以用了。。

#import <UIKit/UIKit.h>

@interface ABCustomAlertView : UIWindow

// 顯示
- (void)show;
// 消失
- (void)dismiss;

@end
[cpp]
//  
//  ABCustomAlertView.m  
//  KnowledgeChoice  
//  
//  Created by on 13-6-19.  
//  Copyright (c) 2013年 DoubleMan. All rights reserved.  
//  
 
#import "ABCustomAlertView.h"  
 
@implementation ABCustomAlertView 
 
- (id)initWithFrame:(CGRect)frame 

    self = [super initWithFrame:frame]; 
    if (self) { 
        // Initialization code  
        self.windowLevel = UIWindowLevelAlert; 
        // 這裡,不能設定UIWindow的alpha屬性,會影響裡面的子view的透明度,這裡我們用一張透明的圖片  
        // 設定背影半透明  
        self.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"alert_bg.png"]]; 
 
         
        UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 80)] autorelease]; 
        view.backgroundColor = [UIColor blackColor]; 
        view.center = CGPointMake(160, 240); 
 
        [self addSubview:view]; 
    } 
     
    return self; 

 
- (void)show { 
    [self makeKeyAndVisible]; 

 
- (void)dismiss { 
    [self resignKeyWindow]; 
    [self release]; 

 
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    // 點擊消失  
    [self dismiss]; 

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

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

 
@end 

//
//  ABCustomAlertView.m
//  KnowledgeChoice
//
//  Created by on 13-6-19.
//  Copyright (c) 2013年 DoubleMan. All rights reserved.
//

#import "ABCustomAlertView.h"

@implementation ABCustomAlertView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
        self.windowLevel = UIWindowLevelAlert;
        // 這裡,不能設定UIWindow的alpha屬性,會影響裡面的子view的透明度,這裡我們用一張透明的圖片
        // 設定背影半透明
        self.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"alert_bg.png"]];

       
        UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 80)] autorelease];
        view.backgroundColor = [UIColor blackColor];
        view.center = CGPointMake(160, 240);

        [self addSubview:view];
    }
   
    return self;
}

- (void)show {
    [self makeKeyAndVisible];
}

- (void)dismiss {
    [self resignKeyWindow];
    [self release];
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    // 點擊消失
    [self dismiss];
}

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

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

@end

這隻是基本的思路,調用的時候只要調show和dismiss就可以顯示、消失了。。。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.