0

我在标签上添加了点击手势,但无法在选择器功能中检索点击的标签。我的意思是,例如,我的功能是这样的:

-(void)changeLabel:(UIGestureRecognizer *)sender{}

如果在 imageview 上添加此手势,我可以使用 sender.view 获取 imageview。
但由于它是一个 uilabel 我不知道如何获取它然后更改文本内容。

希望我的问题很清楚...

4

4 回答 4

2

将交互设置为启用,然后像往常一样添加它。

我的例子:

- (void)viewDidLoad
 {
    [super viewDidLoad];
    self.mainLabel.text = @"This is my label";
    UITapGestureRecognizer *tapRecongizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(changeText)];
    self.mainLabel.userInteractionEnabled = YES;
    [self.mainLabel addGestureRecognizer:tapRecongizer];
}

-(void)changeText
{
    NSArray *randomNames = @[@"Jim", @"Bob", @"John", @"Peter"];
    self.mainLabel.text = [randomNames objectAtIndex:arc4random() % 4];
}
于 2013-08-09T20:16:10.300 回答
1

将 UILabel 的userInteractionEnabled属性设置为 YES。我相信这个属性在 UILabel 的新实例上默认为 NO。

self.yourLabel.userInteractionEnabled = YES;
于 2013-08-09T20:08:04.057 回答
0

UILabel在具有相同框架的顶部添加一个清除按钮

然后为按钮触摸创建一个IBAction,并在其中处理更改标签文本。

于 2013-08-09T20:18:51.443 回答
0

您可以在标签上方添加一个与标签具有相同框架且不透明度非常低的 UIButton,并让按钮执行操作。

于 2013-08-09T20:59:47.820 回答