Masonry
Masonry copied to clipboard
view设置了高度为0.8,但是打印出来是1
[view1 mas_makeConstraints:^(MASConstraintMaker *make) { make.left.mas_offset(100.f); make.height.mas_offset(0.8); make.width.mas_offset(50.f); make.top.mas_offset(100.f); }]; <UIView: 0x7f8749406760; frame = (100 100; 50 1); layer = <CALayer: 0x6000015a9bc0>> 是不是内部做了四舍五入的处理
和屏幕有关
请问你见过像素有0.5的吗?像素最小单位是1吧?你可以去photoshop上看看
这个不能设置小数点的..虽然是float类型
make.height.mas_offset(0.5);
0.5 绘制的实际高度不一: 0.67 或 0.33
对float支持有误差,怎么解决?
误差还会报错呢。。这类库都不维护了吧??
系统会进行像素对齐。具体计算方式:v = ceil(scale * x) / scale
, scale
是屏幕缩放系数。
在 2x 屏幕下 ceil(2 * 0.8) / 2 = 1
在 3x 屏幕下 ceil(3 * 0.8) / 3 = 1
https://lvv.me/blog/posts/2019/12/03_pix_aligned/
make.height.mas_offset(0.5);
0.5 绘制的实际高度不一: 0.67 或 0.33 对float支持有误差,怎么解决?
0.5pt 可以当做 1px 来处理,设置为 1 / UIScreen.main.scale