https://www.jianshu.com/p/01cadd95604d
参考网上的文章
- (
CGFloat)fixSlitWith:(
CGRect)rect colCount:(
CGFloat)colCount space:(
CGFloat)space {
CGFloat totalSpace = (colCount -
1) * space;
//总共留出的距离
CGFloat itemWidth = (rect.size.width - totalSpace) / colCount;
// 按照真实屏幕算出的cell宽度 (iPhone6 375*667)93.75
CGFloat fixValue =
1 / [
UIScreen mainScreen].scale;
//(1px=0.5pt,6Plus为3px=1pt)
CGFloat realItemWidth = floor(itemWidth) + fixValue;
//取整加fixValue floor:如果参数是小数,则求最大的整数但不大于本身.
if (realItemWidth < itemWidth) {
// 有可能原cell宽度小数点后一位大于0.5 realItemWidth += fixValue; }
CGFloat realWidth = colCount * realItemWidth + totalSpace;
//算出屏幕等分后满足1px=([UIScreen mainScreen].scale)pt实际的宽度,可能会超出屏幕,需要调整一下frame
CGFloat pointX = (realWidth - rect.size.width) /
2;
//偏移距离 rect.origin.x = -pointX;
//向左偏移 rect.size.width = realWidth; _rect = rect;
return realItemWidth;
//每个cell的真实宽度}
得到cell/线的宽度