如何通过点击更改UILabel内容?

时间:2013-08-09 19:59:28

标签: ios objective-c uilabel uigesturerecognizer

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

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

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

希望我的问题很明确......

4 个答案:

答案 0 :(得分: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];
}

答案 1 :(得分:1)

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

self.yourLabel.userInteractionEnabled = YES;

答案 2 :(得分:0)

使用相同的框架

UILabel的顶部添加一个清除按钮

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

答案 3 :(得分:0)

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