不断增加字体大小

时间:2013-03-14 11:01:22

标签: objective-c font-size

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

我在@property(nonatomic) CGFloat fontSize;

中初始化为ViewDidLoad

单击按钮时调用此函数:

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

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

3 个答案:

答案 0 :(得分:1)

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

    - (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);
    }
    

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

试试这个。 它会起作用。

答案 2 :(得分:0)

逻辑在上面的答案中是完美的。
只需将按钮事件设置为“触摸拖动内部”。

Button Event

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

感谢。