• iOS-label出现未知边框线的bug


    在前段时间碰到了一个问题  label上出现了一个位置的右边框  仔细查看代码发现没有指定边框 而且奇怪的是只显示右边框  其他边框没有显示  

    需求效果图:

    实际效果图:

    结构图:

    通过查看结构图  可以发现英雄联盟 label的右边框明显黑一点  

    改正前代码:

        UILabel *tagLabel = [[UILabel alloc]init];
        tagLabel.backgroundColor = [UIColor whiteColor];
        tagLabel.textColor = [UIColor colorWithRed:153/255.0 green:153/255.0 blue:153/255.0 alpha:1.0];
        tagLabel.font = ([UIScreen mainScreen].bounds.size.width>=375?[UIFont systemFontOfSize:12]:[UIFont systemFontOfSize:10]);
        self.tagLabel = tagLabel;
        tagLabel.text = @"英雄联盟";
        [self addSubview:tagLabel];

    改正后代码:
        UILabel *tagLabel = [[UILabel alloc]init];
    //    tagLabel.backgroundColor = [UIColor whiteColor];
        //将白色背景色改为透明色后则无右边框
        tagLabel.backgroundColor = [UIColor clearColor];
        tagLabel.textColor = [UIColor colorWithRed:153/255.0 green:153/255.0 blue:153/255.0 alpha:1.0];
        tagLabel.font = ([UIScreen mainScreen].bounds.size.width>=375?[UIFont systemFontOfSize:12]:[UIFont systemFontOfSize:10]);
        self.tagLabel = tagLabel;
        tagLabel.text = @"英雄联盟";
        [self addSubview:tagLabel];
    那个未知的右边框应该室友label的背景颜色导致的 通过更改label的背景颜色为透明色 可以隐藏此边框


    另外,出现此问题的原因也有可能是因为label尺寸精度问题:
    在计算每个label 的frame时因为是根据text的文字多少与字体大小有关,造成frame的size 中width 跟height 有小数部分,只要将其width与height改为int类型即可解决改问题。
      CGRect tempFrame = label.frame;
      tempFrame.size.width = (int)label.frame.size.width;
      tempFrame.size.height = (int)label.frame.size.height;
      label.frame = tempFrame;
    
    
    
     
  • 相关阅读:
    一本通1402 Vigenère密码
    一本通1166 求f(x,n)
    一本通1083 计算星期几
    一本通1157 哥德巴赫猜想
    一本通1156 求π的值
    SpringBoot多数据源:动态数据源
    cron 表达式
    自定义异常类
    CentOS7 常用命令集合
    想要学好Git,应该掌握哪些基础知识?
  • 原文地址:https://www.cnblogs.com/gaoxiaoniu/p/5332541.html
Copyright © 2020-2023  润新知