我遇到了一些看似简单的问题。使用下面的代码以编程方式用 FLOAT 高度/宽度的矩形填充 UIView,矩形之间没有任何空格(矩形应该连接)。
int WIDTH = 72(does NOT work);//80(works);//32(works);
int HEIGHT = 45(does NOT work);//50(works);//20(works);
_cellSizeX = self.bounds.size.width / WIDTH;
_cellSizeY = self.bounds.size.height / HEIGHT;
UIGraphicsBeginImageContext(self.bounds.size);
CGRect cellFrame = CGRectMake(0, 0,_cellSizeX, _cellSizeY);
_cellIndex = 0;
for (int i = 0; i < WIDTH; i++)
{
cellFrame.origin.y = 0;
for (int j = 0; j < HEIGHT; j++, _cellIndex++)
{
[_Image drawInRect:cellFrame blendMode:kCGBlendModeOverlay alpha:1.0];
cellFrame.origin.y += _cellSizeY;
}
cellFrame.origin.x += _cellSizeX;
}
_blendedImage = UIGraphicsGetImageFromCurrentImageContext();
_Layer.contents = (id) _blendedImage.CGImage;
UIGraphicsEndImageContext();
该代码工作正常,但前提是相对于宽度和高度明确划分为素数。EG 宽度 = 480,高度 = 300。
The Primes of 480 are: 480= 2*2*2*2*2*3*5;
The Primes of 300 are: 300= 2*2*3*5*5;
And their common primes are: 2*2*3*5;
这意味着我对行/列中的大量单元格很好:
8(actually 2*2*2)/5;
16 / 10;
24 / 15;
32 / 20;
...;
80 / 50;
但不是例如 72 / 45.... 说得简单的原因:
480 / 72 = 6,6666667;
300 / 45 = 6,6666667;
另一方面,可行的示例:
480 / 32 = 15;
300 / 20 = 15;
所以它在某个地方是一个浮点数与整数的问题。但是哪里 ??!!
谢谢您阅读此篇。