4 Stimmen

uibutton Absender-Tag

Ich habe ein UIImageView-Objekt, das, wenn es angeklickt wird, eine Animation abspielen wird, ich möchte den gleichen Code wiederverwenden, um mehrere Objekte zu machen. Wie stelle ich den Sender-Tag, so dass es weiß, seine ein anderes Objekt?

.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];
}

17voto

Rose Perrone Punkte 58235

Utilice [sender tag] .

Warum nicht sender.tag fragen Sie?

Sie können die Punktschreibweise nur verwenden, wenn Sie die sender als eine Instanz von UIView wie in ((UIView *)sender).tag . Objekte der UIView haben eine Tag-Eigenschaft. Wenn Sie nicht die Eigenschaft sender als eine Instanz von UIView ist es nur ein id die den Anforderungen der NSURLAuthenticationChallengeSender Protokoll, und es fehlt ein tag Eigentum.

Hier ist ein Beispiel für die Verwendung des Tags einer Schaltfläche:

#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
    }
}

3voto

Ken Pespisa Punkte 21474

Der Absender ist das Objekt, das die startClick-Methode aufgerufen hat. Sie können dieses Objekt in eine UIImageView umwandeln und dann die Tag-Eigenschaft dieses Objekts betrachten, um festzustellen, um welches Objekt es sich handelt.

Sie müssen die Tag-Eigenschaft an einer anderen Stelle des Codes festlegen. Wenn Sie die UIImageViews in Interface Builder haben, können Sie das Eigenschaftenfenster verwenden, um eine Tag-Nummer einzugeben. Andernfalls setzen Sie die Tag-Eigenschaft, wenn Sie Ihre UIImageViews zuweisen und initialisieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X