1

初始化

假设我有 5 个标签,标记为 1-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.length 远离 label.frame.center 甚至可能是 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 回答