2

この問題に対する回答を探しましたが、特定の問題によく関連するものは見つかりませんでした。複数の UILabels があり、押された UIButton に応じてテキストを変更しようとしています (iPhone の電話機能に似ています)。このメソッドは、既知の 1 つの UILabel に対して機能します。ただし、複数のラベルが存在する場合、ラベルに書き込もうとしています。ラベルをタップしてテキストを書き込むラベルを特定したいのですが、コードが機能しません...私の方法は次のとおりです。

// init method
answerFieldC.userInteractionEnabled = YES;
touch = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(inputAnswer:)];
[touch setNumberOfTapsRequired:1];
[answerFieldC addGestureRecognizer:touch];

-(IBAction)inputAnswer:(id)sender {
    strC = [answerFieldC text];
    currentLabel = touch.view;

    if (currentLabel==answerFieldC) {
        [strC stringByAppendingString:[sender currentTitle]];
        [answerFieldC setText:strC];
    }
}

他のラベルは、同じ inputAnswer および init コードの下で動作しています。answerFieldCはラベルstrCで、ラベルのテキストを格納する文字列です。助けてくれてありがとう!

4

3 に答える 3

0

UIButton を使用してラベルのように見せてみませんか?

UIButton whateverYouCallYourButton = [[UIButton alloc] init];
[whateverYouCallYourButton addTarget:self action:@selector(itemClicked:) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:whateverYouCallYourButton];

次に、このように itemClicked を作成します...

- (void)itemClicked: (id)sender {
// stuff you want to do here
}
于 2013-07-28T13:11:02.717 に答える