ios - 以编程方式创建一些 UIButton 并稍后使用标签重建对象?

标签 ios objective-c uibutton

我正在以编程方式创建一些按钮,类似于:

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/

相关文章:

ios - 如何访问 UITableViewHeaderFooterView 子类中的 UIButton(或任何 UIElement)?

iOS:变色圆形按钮

ios - 单击 CollectionViewCell 中的按钮

ios - PhoneGap iOS 中的扩展启动画面

iOS 9 Swift UIButton CheckBox 子类不显示图像

iphone - 如何通过从 iOS 多任务栏中删除我的应用程序来了解它何时退出

ios - 选择器'valueWithCGPoint'的未知类方法

ios - 从 Facebook iOS 7 获取用户名和个人资料图片

ios - 使用 Swift 实现的分析不起作用

ios - 如何在 iOS App 中集成 PayPal/Apple Pay 支付模块?