• 线程--延迟


    一提到延迟首先想到的是Sleep

    [NSThread sleepForTimeInterval:10];
    

    这只是等待十秒之后在执行

    这里说的是

    dispatch_after是延迟提交,不是延迟运行

    先看看官方文档的说明:

    Enqueue a block for execution at the specified time.

    Enqueue,就是入队,指的就是将一个Block在特定的延时以后,加入到指定的队列中,不是在特定的时间后立即运行!。

    [UILabel showStats:@"存储成功" atView:self.view];
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            [self.navigationController popViewControllerAnimated:YES];
    });
    

     这两句代码执行之后的效果如下

     uilabel 调用方法的延展

    UILabel+Extension.h

    #import <UIKit/UIKit.h>
    
    @interface UILabel (Extension)
    
    + (UILabel *)labelWithFont:(UIFont *)font
                     textColor:(UIColor *)textColor
                 numberOfLines:(NSInteger)lines
                 textAlignment:(NSTextAlignment)textAlignment;
    
    
    /**
     *  自己粗略做的一个指示器=。=
     *
     *  @param stats 提示内容
     *  @param view  添加到view上
     */
    + (void)showStats:(NSString *)stats atView:(UIView *)view;
    
    /**
     *  快速设置富文本
     *
     *  @param string 需要设置的字符串
     *  @param range  需要设置的范围(范围文字颜色显示为下厨房橘红色)
     */
    - (void)setAttributeTextWithString:(NSString *)string range:(NSRange)range;
    @end
    

     UILabel+Extension.m

    #import "UILabel+Extension.h"
    
    @implementation UILabel (Extension)
    
    + (UILabel *)labelWithFont:(UIFont *)font
                     textColor:(UIColor *)textColor
                 numberOfLines:(NSInteger)lines
                 textAlignment:(NSTextAlignment)textAlignment {
        UILabel *label = [[UILabel alloc] init];
        label.font = font;
        label.textColor = textColor;
        label.numberOfLines = lines;
        label.textAlignment = textAlignment;
        return label;
    }
    
    
    + (void)showStats:(NSString *)stats atView:(UIView *)view {
        
        UILabel *message = [[UILabel alloc] init];
        message.layer.cornerRadius = 10;
        message.clipsToBounds = YES;
        message.backgroundColor = RGBA(0, 0, 0, 0.8);
        message.numberOfLines = 0;
        message.font = [UIFont systemFontOfSize:15];
        message.textColor = XCFLabelColorWhite;
        message.textAlignment = NSTextAlignmentCenter;
        message.alpha = 0;
        
        message.text = stats;
        CGSize size = [stats boundingRectWithSize:CGSizeMake(MAXFLOAT, 50)
                                         options:NSStringDrawingUsesLineFragmentOrigin
                                      attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15]}
                                         context:nil].size;
        message.frame = CGRectMake(0, 0, size.width + 20, size.height + 10);
        message.center = view.center;
        [view addSubview:message];
        
        [UIView animateWithDuration:1.5 animations:^{
            message.alpha = 1;
        } completion:^(BOOL finished) {
            [UIView animateWithDuration:2 animations:^{
                message.alpha = 0;
            } completion:^(BOOL finished) {
                [message removeFromSuperview];
                
            }];
        }];
    }
    
    
    - (void)setAttributeTextWithString:(NSString *)string range:(NSRange)range {
        NSMutableAttributedString *attrsString = [[NSMutableAttributedString alloc] initWithString:string];
        [attrsString addAttribute:NSForegroundColorAttributeName value:XCFThemeColor range:range];
        self.attributedText = attrsString;
    }
    
    @end
    
  • 相关阅读:
    Unity 绘制带颜色的流线 streamline
    Tinyply 源码阅读
    题解 [BZOJ2952]长跑
    莫比乌斯反演技巧
    题解 pyh的求和
    Java Web基础
    后端常用数据持久层模板及框架以及一些工具类模板的配置使用集合
    12306火车订票系统(C++)
    C++/Java文件读写并执行相关操作、文件复制、文件格式转换等(举例)
    《Java EE编程技术》综合应用系统开发_作业管理系统_Struts2_设计报告
  • 原文地址:https://www.cnblogs.com/menglingxu/p/6373511.html
Copyright © 2020-2023  润新知