我在 UIView 中创建多个 UIButton。有两个嵌套循环,以创建不同的按钮组,具有不同的形状。问题是,只有最后一个创建的 UIButton 是可见的(并且可以使用 PanGestureRecognizer 移动),即使按钮应该插入不同的位置。
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
int i, j;
NSMutableString *backgoundImageName = [[NSMutableString alloc] init];
NSMutableString *barTitle = [[NSMutableString alloc] init];
sticks = [[NSMutableArray alloc] init];
[mainView setBackgroundColor:[UIColor blackColor]];
self.view = mainView;
[mainView setNeedsDisplay];
//create the bars
UIButton *barra = [UIButton buttonWithType:UIButtonTypeRoundedRect];
UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];
[barra addTarget:self action:@selector(changeButtonTitle:) forControlEvents:UIControlEventTouchUpInside];
[barra addGestureRecognizer:panGestureRecognizer];
for (j = 1; j <= 10; j++) {
backgoundImageName = [NSMutableString stringWithFormat:@"Regolo%d%@",j,@".png"];
for (i = 1; i <= 3; i++) {
barra.frame = CGRectMake((SQUARE_SIZE * j), (SQUARE_SIZE * 2), SQUARE_SIZE, (SQUARE_SIZE * j));
[barra setBackgroundImage:[UIImage imageNamed:backgoundImageName] forState:UIControlStateNormal];
[barra setTag:j];
barTitle = [NSMutableString stringWithFormat:@"%d",j];
[barra setTitle:barTitle forState:UIControlStateNormal];
[barra setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[sticks addObject:barra];
[self.mainView addSubview:(UIButton *)sticks.lastObject];
}
}
}