3.iOS 自定义 UILable Rect时,有时会上边或右边会显示一条细线的问题。

-(void)drawTextInRect:(CGRect)rect {
    [super drawTextInRect:UIEdgeInsetsInsetRect(rect, _edgeInsets)];
}

在自定义UILlabel 边距时,label上边或左边会显示一条细线。

这是因为,UILable 的rect 宽高没有取整。

        labelWidth = GetWidth6(15)*2 + charWidth + 2;
        labelHeight = GetWidth6(5)*2 + fontHeight + 2;
        
        [_labelBg addSubview:label];
 
        label.sd_layout
        .leftEqualToView(_labelBg)
        .topSpaceToView(_labelBg, GetWidth6(0))
        .widthIs(labelWidth)
        .heightIs(labelHeight);

改为

        labelWidth = ceil(GetWidth6(15)*2 + charWidth + 2);
        labelHeight = ceil(GetWidth6(5)*2 + fontHeight + 2);
        
        [_labelBg addSubview:label];

        label.sd_layout
        .leftEqualToView(_labelBg)
        .topSpaceToView(_labelBg, GetWidth6(0))
        .widthIs(labelWidth)
        .heightIs(labelHeight);

* 附 iOS取整方式

float floatVale1 = 2.8;

float floatVale2 = 2.2;

 1.直接转化。  

 int value1 = (int) floatVale1;

 int value2 = (int) floatVale2;

结果:

value1 = 2;

value2 = 2;

2.向下取整

int value1 = floor(floatValue1);

 int value2 = floor(floatValue2);

结果:

value1 = 2;

value2 = 2;

3.向上取整

int value1 = ceil(floatValue1);

 int value2 = ceil(floatValue2);

结果:

value1 = 3;

value2 = 3;

4.四舍五入

int value1 = round(floatValue1);

 int value2 = round(floatValue2);

结果:

value1 = 2;

value2 = 3;

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值