1

初期化

1〜5のタグが付いた5つのラベルがあるとします。これらの5つのラベルはIBOutletCollection

 @property (nonatomic, retain) IBOutletCollection(UILabel) NSMutableSet* myLineCollection;

私がやりたいこと:

指が画面に触れて移動するときに、指がどのラベルにあるかを受け取りたいですmyLineCollection

私の最終目標は、指が現在終わっているラベルの色を赤から青に変更することなので、これを受け取りたいと思います。しかし、私の指が離れると、元の色である青に戻るはずです。

使うべきだと思っていました

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

および/または

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event

および/または

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

私は試してきました:

タッチを使用し、タッチがlabel.windowにあったかどうか、またはタッチポイントがlabel.frame.centerからlabel.frame.length離れている場合はcであるかどうかのifステートメント。

タッチしている現在のタグのタグを受け取り、そのタグに対して何かを行うにはどうすればよいですか。それが私が必要なものすべてです

4

1 に答える 1

2

これがお役に立てば幸いです。

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    UITouch *touch = [touches anyObject];
    CGPoint touchPoint = [touch locationInView:self.view];
    //here loops all labels
    for(){
        if (CGRectContainsPoint([lable frame],touchPoint)) {
            //change label's background color
        }
    }
}
于 2012-09-07T00:55:04.363 に答える