码迷,mamicode.com
首页 > 移动开发 > 详细

iOS中可以设定时间自动消失提示框的三种实现方式

时间:2015-11-01 22:54:42      阅读:1648      评论:0      收藏:0      [点我收藏+]

标签:ios



  
//==============================================================================

#pragma mark - 一、显示定制View的消息,定时消失

//==============================================================================


+(void)showMessage:(NSString *)message duration:(NSTimeInterval)time
{
    CGSize screenSize = [[UIScreen mainScreen] bounds].size;

    UIWindow * window = [UIApplication sharedApplication].keyWindow;
    UIView *showview =  [[UIView alloc]init];
    showview.backgroundColor = [UIColor grayColor];
    showview.frame = CGRectMake(1, 1, 1, 1);
    showview.alpha = 1.0f;
    showview.layer.cornerRadius = 5.0f;
    showview.layer.masksToBounds = YES;
    [window addSubview:showview];
    
    UILabel *label = [[UILabel alloc]init];
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
    paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;
    
    NSDictionary *attributes = @{NSFontAttributeName:[UIFont systemFontOfSize:15.f],
                                   NSParagraphStyleAttributeName:paragraphStyle.copy};
    
    CGSize labelSize = [message boundingRectWithSize:CGSizeMake(207, 999)
                                             options:NSStringDrawingUsesLineFragmentOrigin
                                                 attributes:attributes context:nil].size;
 
    label.frame = CGRectMake(10, 5, labelSize.width +20, labelSize.height);
    label.text = message;
    label.textColor = [UIColor whiteColor];
    label.textAlignment = 1;
    label.backgroundColor = [UIColor clearColor];
    label.font = [UIFont boldSystemFontOfSize:15];
    [showview addSubview:label];
    
    showview.frame = CGRectMake((screenSize.width - labelSize.width - 20)/2,
                                    screenSize.height - 100,
                                       labelSize.width+40,
                                           labelSize.height+10);
    [UIView animateWithDuration:time animations:^{
        showview.alpha = 0;
    } completion:^(BOOL finished) {
        [showview removeFromSuperview];
    }];
}


//==============================================================================

#pragma mark - 二、显示UIAlert窗口消息,定时消失

//==============================================================================

//------------------------------------------------------------------------------

#pragma mark - 1、外部调用接口

//------------------------------------------------------------------------------

+(void)showAlert:(NSString *) message duration:(NSTimeInterval)time
{
    UIAlertView *promptAlert = [[UIAlertView alloc] initWithTitle:@"提示:"
                                                          message:message delegate:nil
                                                               cancelButtonTitle:nil
                                                                   otherButtonTitles:nil];
    
    [NSTimer scheduledTimerWithTimeInterval:time
                                     target:self
                                        selector:@selector(timerFireMethod:)
                                          userInfo:promptAlert
                                             repeats:YES];
    [promptAlert show];
}

//------------------------------------------------------------------------------

#pragma mark - 2、外部调用接口的回调方法

//------------------------------------------------------------------------------

+(void)timerFireMethod:(NSTimer*)theTimer//弹出框
{
    UIAlertView *promptAlert = (UIAlertView*)[theTimer userInfo];
    [promptAlert dismissWithClickedButtonIndex:0 animated:NO];
    promptAlert = NULL;
}


//==============================================================================

#pragma mark - 三、显示UIAlert窗口消息,定时消失

//==============================================================================

//------------------------------------------------------------------------------

#pragma mark - 1、外部调用接口

//------------------------------------------------------------------------------

+(void)showAlertMessageWithMessage:(NSString*)message duration:(NSTimeInterval)time
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示:" message:message delegate:nil
                                          cancelButtonTitle:nil otherButtonTitles:nil];
    [alert show];
    [self performSelector:@selector(dimissAlert:) withObject:alert afterDelay:time];
}

//------------------------------------------------------------------------------

#pragma mark - 2、外部调用接口的回调方法

//------------------------------------------------------------------------------

+(void) dimissAlert:(UIAlertView *)alert {
    if(alert)     {
        [alert dismissWithClickedButtonIndex:[alert cancelButtonIndex] animated:YES];
    }
}
//------------------------------------------------------------------------------
      


版权声明:本文为博主原创文章,未经博主允许不得转载。

iOS中可以设定时间自动消失提示框的三种实现方式

标签:ios

原文地址:http://blog.csdn.net/teamlet/article/details/49563117

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!