gpt4 book ai didi

objective-c - 在 Objective-C 中创建框架并将按钮放在框架内

转载 作者:行者123 更新时间:2023-11-28 18:40:48 25 4
gpt4 key购买 nike

我想用 52 个正方形或按钮(一年中 52 周在一个页面中)创建带有网格的 View ,但我不知道应该如何对齐它们或如何将它们放在框架中

(您将有 13 行和 4 列),但如果您尝试使用此代码,则它不是 algin :我不知道应该如何创建框架以将所有按钮放在框架的一侧..

这是我的代码:

- (void)viewDidLoad
{
[super viewDidLoad];
int rows = 13, columns = 4;

for (int y = 0; y < rows; y++) {
for (int x = 0; x < columns; x++) {
UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(58 * x, 31 * y, 58, 31);

[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview: button];

}
}



}


-(void)buttonPressed:(UIButton *)button
{
NSLog(@"button %u -- frame: %@", button.tag, NSStringFromCGRect(button.frame));
}

最佳答案

与其将按钮直接添加到 Controller 的 View ,不如创建一个包含所有按钮的 subview 。然后,将此 subview 居中。这是您可以使用的代码:

int rows = 13, columns = 4;
UIView *buttonView = [[UIView alloc] initWithFrame:CGRectMake(0.f, 0.f, 58*columns, 58*rows)];
for (int y = 0; y < rows; y++) {
for (int x = 0; x < columns; x++) {
UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(58 * x, 31 * y, 58, 31);

[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
[buttonView addSubview: button];

}
}

// Center the view which contains your buttons
CGPoint centerPoint = buttonView.center;
centerPoint.x = self.view.center.x;
buttonView.center = centerPoint;
[self.view addSubview:buttonView];

如果您希望按钮占据整个 View ,请调整按钮的宽度和高度(您使用了 58 和 31)。

关于objective-c - 在 Objective-C 中创建框架并将按钮放在框架内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11098200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com