我正在以编程方式创建一些按钮,类似于:
for( int i = 0; i < 5; i++ ) {
UIButton* aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[aButton setTag:i];
[aButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[aView addSubview:aButton];
}
而且我可以通过这种方式实现按钮的功能,这样我就知道某个女巫被点击了:
- (void)buttonClicked:(UIButton*)button
{
NSLog(@"Button %ld clicked.", (long int)[button tag]);
}
但我的问题比这更棘手,我不想只访问按钮方法内部的按钮,还要访问它之外的按钮,以便我可以使用动画更改 UIButton 框架。
我在想,我应该能够以某种方式重新创建指向之前使用我最初分配的标签创建的任何按钮的指针。 谁能指出我正确的方向?
最佳答案
正确的做法是使用下一行代码:
UIButton *aButtonReconstruct = (UIButton *)[self.view viewWithTag:aTag];
其中 aTag 是一个大于 0 的整数,因为默认情况下所有 View 的标签都为 0,因此在首先使用的 for 循环中,计数应从最小值 1 开始。在我们的例子中,aTag 具有值在我们更改 for 循环后从 1 到 6。
同样,不应有更多具有相同标签的 View 。
关于ios - 以编程方式创建一些 UIButton 并稍后使用标签重建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30241345/