UIButton的发送方标签(uibutton sender tag)

2019-09-17 17:45发布

我有点击它会起到动画的时候,我想重复使用相同的代码,使多个对象一个UIImageView对象。 如何设置发件人标签,所以它知道它的不同的对象?

。H

- (IBAction)startClick:(id)sender;

.M

- (IBAction)startClick:(id)sender
{
    //UIImageView *theButton = (UIImageView *)sender.tag;

    bubble.animationImages = [NSArray arrayWithObjects:
                           [UIImage imageNamed: @"Pop_1.png"],
                           [UIImage imageNamed: @"Pop_2.png"],
                           [UIImage imageNamed: @"Pop_3.png"], nil];

    [bubble setAnimationRepeatCount:1];
    bubble.animationDuration = 1;
    [bubble startAnimating];
}

Answer 1:

发送者是称为startClick方法的对象。 你可以施放该对象到一个UIImageView,然后看看该对象的标签属性,以确定它是哪一个。

你需要在代码中的其他地方设置的标签属性。 如果你有UIImageViews的界面生成器,你可以使用属性窗口中输入标签编号。 否则,当你分配和初始化您的UIImageViews,然后设置标签属性。



Answer 2:

使用[sender tag]

为什么不sender.tag ,你问?

如果你投你只能用点号sender作为一个实例UIView ,如((UIView *)sender).tag 。 对象UIView有标记属性。 如果你不投sender作为一个实例UIView ,它仅仅是一个id是符合NSURLAuthenticationChallengeSender协议,它缺乏一个tag属性。

下面是一个使用按钮的标签的例子:

#define kButtonTag  2

- (void)viewDidLoad {
   // ... view setup ...

   UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
   // ... button setup ...

   button.tag = kButtonTag;

   [super viewDidLoad];
}

- (IBAction)startClicked:(id)sender {

   if ([sender tag] == kButtonTag) {
        // do something
    }
}


文章来源: uibutton sender tag
标签: iphone xcode