1

ボタンを押したままUILabel/UITextView/...のフォントサイズを継続的に大きくするにはどうすればよいですか

私は:@property(nonatomic) CGFloat fontSize;を17に初期化しましたViewDidLoad

この関数は、ボタンがクリックされたときに呼び出されます。

- (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. 次の反復で増加するように、現在のフォントサイズを保存する必要があります。

Voilà:

- (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

これらの2行をに追加します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

ロジックは上記の答えで完璧です。
ButtonEventを「TouchDragInside」に設定するだけです。

ボタンイベント

私の理解によれば、それは私のテストアプリケーションで機能しています。

ありがとう。

于 2013-03-14T11:39:57.620 に答える