美文网首页
IOS - 杂七杂八

IOS - 杂七杂八

作者: CDLOG | 来源:发表于2018-08-17 14:29 被阅读31次

    设置子串是不同的颜色

    /**
    设置子串是不同的颜色
    
     @param color 颜色
     @param allStr 父串
     @param subString 子串
     @return 带颜色的父串
     */
    -(NSMutableAttributedString *)setSubColor:(UIColor *)color : (NSString *)allStr : (NSString *)subString{
        NSMutableAttributedString *noteStr = [[NSMutableAttributedString alloc] initWithString:allStr];
        NSRange redRange = NSMakeRange([[noteStr string] rangeOfString:subString].location, [[noteStr string] rangeOfString:subString].length);
        //需要设置的位置
        [noteStr addAttribute:NSForegroundColorAttributeName value:color range:redRange];
        //设置颜色
        return noteStr;
        
    }
    
     NSString *all = @"该区域共0条相关资源";
                self.statisticsGoogsLable.attributedText =  [all setSubColor:[UIColor redColor] :all :@"0"];
    iOS使用NSMutableAttributedString实现富文本小结https://www.jianshu.com/p/583417467e94
    
    

    NSMutableAttributedString *mutableString = [[NSMutableAttributedString alloc]initWithString:totalFee];
    [mutableString addAttribute:NSFontAttributeName
    value:[UIFont systemFontOfSize:21.0]
    range:NSMakeRange(3, totalFee.length - 3)];//设置字体
    [mutableString addAttribute:NSForegroundColorAttributeName
    value:[UIColor redColor]
    range:NSMakeRange(3, totalFee.length - 3)];//设置颜色
    [mutableString addAttribute:NSUnderlineStyleAttributeName
    value:[NSNumber numberWithInteger:NSUnderlineStyleSingle]
    range:NSMakeRange(0, totalFee.length)];//添加下划线
    sumLabel.attributedText = mutableString;

    数字是特殊的颜色和字体

    -(NSMutableAttributedString *)setGroupStr:(NSString *)content numColor:(UIColor *)numcolor otherColor:(UIColor *)otherolor  fontSize:(CGFloat)size{
        //      1首选初始化对象,正则表达式选取0到9的数字范围
        
        NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^0-9]" options:0 error:nil];
        
        //     2获取查询结果,得到的数组里面有一行文本中数字的范围
        NSArray *numArr = [regex matchesInString:content options:0 range:NSMakeRange(0, [content length])];
        NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:content attributes:@{NSForegroundColorAttributeName:numcolor}];
        [attributedString addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:size ] range:NSMakeRange(0,[content length])];
        //    3循环找到数字的范围用富文本来给这行文本赋值
        for (NSTextCheckingResult *attirbute in numArr) {
            [attributedString setAttributes:@{NSForegroundColorAttributeName:otherolor} range:attirbute.range];
        }
        return attributedString;
    }
    
    
    

    手势

    UITapGestureRecognizer *labelTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self
                                                                                    action:@selector(supplyLabelClick)];
    // 2. 将点击事件添加到label上
    [_supplyUILabel addGestureRecognizer:labelTapGestureRecognizer];
    
    //图片添加手势,需要设置可交互
    [imageView setUserInteractionEnabled:YES];
    

    父控件背景半透明而其子控件不透明

    view.backgroundColor = [UIColor colorWithWhite:0.5 alpha:0.3];
    //还可以使用这个方法,可以设置其他颜色
    colorWithRed:green:blue:alpha:
    

    获取文字的宽高

    CGSize pSize = [self.model.nickname sizeWithAttributes:@{NSFontAttributeName : Font_System_Regular(11)}];
    

    加载xib

    [[NSBundle mainBundle] loadNibNamed:@"selectExpressTitleView" owner:nil options:nil].lastObject
    

    initWithFrame、initWithCoder、awakeFromNib

    initWithFrame当控件不是从xib、storyboard中创建时,会调用这个方法
    initWithCoder当控件是从xib、storyboard中创建时,会调用这个方法
    awakeFromNib在initWithCoder:方法后调用
    顺序是:initWithCoder -> awakeFromNib

    通过frame加载xib

    - (instancetype)initWithFrame:(CGRect)frame {
        
        self = [super initWithFrame:frame];
        
        self = [[[NSBundle mainBundle] loadNibNamed:@"selectExpressTitleView" owner:self options:nil] lastObject];
        return self;
    }
    

    动画

    tableView的动画效果,tableView逐渐显现,透明逐渐减少,这种动画方式必须要有改变的属性,比如透明的程度

    self.OrderTable.alpha = 0;
        [UIView animateWithDuration:1 animations:^{
            self.OrderTable.alpha = 1;
            [self.OrderTable reloadData];
     }];
    

    提示框Alert

    UIAlertController* alert = [UIAlertController alertControllerWithTitle:@"提示"
                                                                   message:@"您是否记得平台支付密码"
                                                            preferredStyle:UIAlertControllerStyleAlert];
    
    UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"忘记了" style:UIAlertActionStyleDefault
                                                          handler:^(UIAlertAction * action) {
                                                              //响应事件
                                                              VerifyPassword *  verifyPassword = [[VerifyPassword alloc]init];
                                                              [self.navigationController pushViewController:verifyPassword animated:YES];
                                                          }];
    UIAlertAction* cancelAction = [UIAlertAction actionWithTitle:@"记得" style:UIAlertActionStyleDefault
                                                         handler:^(UIAlertAction * action) {
                                                             //响应事件
                                                             ChangePassword * changePassword = [[ChangePassword alloc]init];
                                                             [self.navigationController pushViewController:changePassword animated:YES];
                                                         }];
    
    [alert addAction:defaultAction];
    [alert addAction:cancelAction];
    [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:alert animated:YES completion:nil];
    

    只设置某个圆角

            CAShapeLayer* shape = [[CAShapeLayer alloc] init];
            [shape setPath:rounded.CGPath];
            
            self.baseView.layer.mask = shape;
    

    Button

    设置按钮文字向左对齐,并且和左边有十个像素距离

    btn1.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
    btn1.titleEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
    

    按钮文字颜色设置

    [btn setTitleColor:[UIColor blackColor]forState:UIControlStateNormal];
    

    父子控制器

    要添加控制器,已经控制器的view

    NEWPageController *newpage = [[NEWPageController alloc]initWithModels:self.fModels];
         newpage.view.frame = CGRectMake(0, 0, self.baseView.width, self.baseView.height);
        [self addChildViewController:newpage];
        [self.baseView addSubview:newpage.view];
    

    显示长图

    //根据原始图片比例计算控件高度
                self.dailyPriceImage.bounds =CGRectMake(0, 0,self.dailyPriceImage.image.size.width, screenWidth/ (image.size.width/image.size.height)) ;
                //根据原始图片比例计算约束高度
                self.dailyPriceImageHeight.constant = screenWidth/ (image.size.width/image.size.height);
    

    右滑之类的控件

    constant控制布局,frame和alpha才能显示动画,constant改变不会动

     [UIView animateWithDuration:0.3 animations:^{
            self.shenfenHudViewLeading.constant = 0;
            self.shenFenHudView.frame = CGRectMake(screenWidth, self.shenFenHudView.y, self.shenFenHudView.width, self.shenFenHudView.height);
             self.shenfenTableview.alpha = 0;
        }];
    

    相关文章

      网友评论

          本文标题:IOS - 杂七杂八

          本文链接:https://www.haomeiwen.com/subject/fcazbftx.html