2011-12-23 3 views
9

Я создал некоторый набор меток программным образом для отображения на экране, и я хочу, щелкнув по метке, какое действие должно выполнить.Действие на UILabel в iphone

Пожалуйста, не говорите мне о UIButton. Я хочу сделать это для UILabel. После щелчка на метке должно появиться другое подробное представление.

Пожалуйста, помогите мне решить эту проблему, не используя Inteface Builder.

+1

Что не так с UIButton? Я думаю, что прозрачный UIbutton не имеет ничего общего с тем, что вы хотите. – Skyler

ответ

22

Наконец я придумал с решением, и я получил результат

[titleLbl setUserInteractionEnabled:YES]; 
    UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(labelButton:)]; 
    [tapGestureRecognizer setNumberOfTapsRequired:1]; 
    [titleLbl addGestureRecognizer:tapGestureRecognizer]; 
    [tapGestureRecognizer release]; 
4

сделать IBoutlet вашей этикетки, реализовать touchesBegin в контроллере, вытащить CGPoint - touchCoordinate, проверьте

CGRectContainsPoint(label.frame,touchCoordinate) 
{ 
//you got the touch action on your label 
} 
+1

PLS скажите мне, что без IB –

+1

установите свой ярлык метки при его создании: предположим, что у вас установлен тег: 199. то вы можете получать ярлык всякий раз, когда вам требуется UILabel * label = [self.view viewWithTag: 199]; – samfisher

+1

вы можете получить объект метки без IBOutlet, используя выше. Я надеюсь, что это поможет .. – samfisher

3

В

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
....... 
....... 
CGPoint touch;//Touch Location 

if(CGRectContainsPoint([objectOfLable frame], [touch locationInView:self.view ])) 
{ 
    Do What you Want 
} 

} 

Try This

Смежные вопросы