基本上它只是可以設置網格大小,然後從那裏計算x和y位置。
它應根據幀大小計算出有多少列。所以如果框架變寬了,它會顯示更多的列。不知道你是否需要它是獨立的決議,但我已經把它放在那裏。
如果您需要網格中的一定數量的列,那麼只需將gridColumns更改爲固定整數。
float gridItemWidth = 225.00;
float gridItemHeight = 225.00;
-(int)gridColumns {
NSRect frame = [self frame];
return (int)frame.size.width/(gridItemWidth);
}
-(int)getxOffset:(int)i {
int xPadding = 10;
return ((i % [self gridColumns]) * (gridItemWidth + xPadding));
}
-(int)getyOffset:(int)i {
int yPadding = 20;
return (floor(i/[self gridColumns]) * (gridItemHeight + yPadding));
}
然後在你的循環基本上你叫getxOffset和getyOffset你的循環,以獲得電網的位置的索引。
我已經手動將x和y填充設置爲10和20,但您可以將它們設置爲任何需要的值。
這兩個答案的組合的伎倆 雖然我這樣做是爲y偏移 INT結果=((我%下調)*(gridItemHeight + yPadding )); 然後返回。 –