我想知道如何设置网格中UI按钮之间间距的大小。目前我知道如何更改按钮的大小,但这会改变网格的整体大小,而不仅仅是按钮。包括此刻应用程序的一些屏幕截图(忽略UI按钮边框)。代码如下:
- (void)setupBoard:(GameBoard *)board;
{
NSUInteger rows = [[currentGame mainBoard] rows];
NSUInteger cols = [[currentGame mainBoard] columns];
CGSize cellSize = { gridView.frame.size.width/ cols, gridView.frame.size.height/ rows };
CGPoint insertPoint = CGPointZero;
for (int x = 0; x <= rows; x++) {
for (int y = 0; y <= cols; y++) {
UIButton *newButton = [UIButton buttonWithType:UIButtonTypeCustom];
CGRect newButtonFrame = { insertPoint, cellSize };
[newButton associateValue:[NSNumber numberWithInt:x] withKey:@"xrow"];
[newButton associateValue:[NSNumber numberWithInt:y] withKey:@"ycol"];
[newButton setFrame:newButtonFrame];
[newButton setSelected:NO];
[newButton setBackgroundColor:[UIColor colorWithRed:(164.0/255.0) green:(240.0/255.0) blue:(254.0/255.0) alpha:1.0]];
[[newButton layer] setCornerRadius:5.0f];
[[newButton layer] setBorderColor:[[UIColor colorWithRed:(0.0/255.0) green:(0.0/255.0) blue:(0.0/255.0) alpha:0.5] CGColor]];
[[newButton layer] setBorderWidth:5.0f];
[newButton addTarget:self action:@selector(toggleCellState:) forControlEvents:UIControlEventTouchUpInside];
[gridView addSubview:newButton];
[newButton setAlpha:0.10];
insertPoint.x += cellSize.width;
}
insertPoint.x = 0;
insertPoint.y += cellSize.height;
}
}
如果您想查看更多代码,请不要犹豫。
答案 0 :(得分:0)
您可以使用以下代码在按钮的每一侧插入3的填充。这涉及将单元尺寸减小6.
CGFloat padding = 3;
cellSize.width -= 2*padding; //new code
cellSize.height -= 2*padding; //new code
for (int x = 0; x <= rows; x++) {
insertPoint.y += padding; //new code
for (int y = 0; y <= cols; y++) {
insertPoint.x += padding; //new code
UIButton *newButton = [UIButton buttonWithType:UIButtonTypeCustom];
CGRect newButtonFrame = { insertPoint, cellSize };
[newButton associateValue:[NSNumber numberWithInt:x] withKey:@"xrow"];
[newButton associateValue:[NSNumber numberWithInt:y] withKey:@"ycol"];
[newButton setFrame:newButtonFrame];
[newButton setSelected:NO];
[newButton setBackgroundColor:[UIColor redColor]];
[[newButton layer] setCornerRadius:5.0f];
[[newButton layer] setBorderColor:[[UIColor blueColor] CGColor]];
[[newButton layer] setBorderWidth:5.0f];
[newButton addTarget:self action:@selector(toggleCellState:) forControlEvents:UIControlEventTouchUpInside];
[gridView addSubview:newButton];
[newButton setAlpha:0.10];
insertPoint.x += padding+cellSize.width; //updated code
}
insertPoint.x = 0;
insertPoint.y += padding+cellSize.height; //updated code
}