1

按住按钮时如何连续增加 UILabel/UITextView/... 的字体大小

我有一个:@property(nonatomic) CGFloat fontSize;初始化为 17 inViewDidLoad

单击按钮时将调用此函数:

- (IBAction)increaseFontSize:(id)sender {
    [self.label setFont:[UIFont fontWithName:@"Helvetica" size:self.fontSize++]];
    NSLog(@"FONT SIZE: %f", self.fontSize);
}

所以我需要的是在按住按钮时不断增加字体,我想我应该increaseFontSize:以某种方式重复调用该方法

4

3 回答 3

1
  1. 不要使用后自增运算符;这仅适用于整数。
  2. 您需要存储当前的字体大小,以便它增加下一次迭代:

瞧:

- (IBAction)increaseFontSize:(id)sender
{
    self.fontSize = self.fontSize + 1.0;
    [self.label setFont:[UIFont fontWithName:@"Helvetica" size:self.fontSize]];
    NSLog(@"FONT SIZE: %f", self.fontSize);
}
于 2013-03-14T11:04:27.940 回答
1

将这两行添加到ViewDidLoad:

 [self.button addTarget:self action:@selector(ActionStart:) forControlEvents:UIControlEventTouchDown];
    [self.button addTarget:self action:@selector(ActionEnd:) forControlEvents:UIControlEventTouchUpInside];

写这个

-(IBAction) ActionEnd:(id)sender{
    [myTimer invalidate];
    myTimer = nil;
}
-(IBAction) ActionStart:(id)sender{
    myTimer=[NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(increaseSize) userInfo:nil repeats:YES];
}
-(void)increaseSize{
    self.fontSize = self.fontSize + 1.0;
    [self.label setFont:[UIFont fontWithName:@"Helvetica" size:self.fontSize]];
}

尝试这个 。它会起作用的。

于 2013-03-14T11:53:39.820 回答
0

逻辑在上述答案中是完美的。
只需将 Button Event 设置为“Touch Drag Inside”。

按钮事件

根据我的理解,它在我的测试应用程序中工作。

谢谢。

于 2013-03-14T11:39:57.620 回答