5

WatchKit を使用してアプリを開発しています

1 つのWKInterfaceTimerを作成したい1 つのボタンをタップすると、タイマーは0 秒から始まります

しかし、アプリケーションを実行するとタイマーが自動的に開始し、前後にタイマーを停止できません

コードは次のとおりです。

 [self.mytimer setHidden:NO];
 [self.mytimer start];

ストーリーボードでは、短い「秒の時間」をすべてチェックし、有効にしてチェックを外しました

使用する必要がありますか [self.mytimer setDate:];

はいの場合、ラベル 0 秒を示す短い文字列の正確な値を教えてください

4

1 に答える 1

7

何を求めているのか正確にはわかりませんが、時計のストーリーボードの下にボタンのあるタイマーを配置しました。次に、タイマーが省略形で有効になっていることを確認しました(秒、分、時間が選択されていることを確認します)。タイマーが有効になっていることを確認してください。そうしないと、ビューに表示されません。現在、タイマーをプログラムで有効にする方法が見つかりませんでした。また、開始ボタンを押したときに日付を設定していることを確認してください。そうしないと、バックグラウンドで知らないうちにタイマーがカウントアップを開始します。WKInterfaceTimer のクラスでは、start メソッドはラベルを更新するだけで、実際にはどのような種類のタイマーも開始しません。以下のコードは、タイマーを 0 からカウントアップします。

#import "InterfaceController.h"


@interface InterfaceController()
@property (weak, nonatomic) IBOutlet WKInterfaceTimer *testTimer;
@end


@implementation InterfaceController

- (instancetype) initWithContext: (id) context
{
    self = [super initWithContext:context];
    if (self)
    {
        NSLog(@"Custom init called for InterfaceController!");
    }
    return self;
}

- (void) willActivate
{
    [self.testTimer stop];
    NSLog(@"Activated!");
}

- (IBAction) onStartButtonPressed
{
    [self.testTimer setDate:[NSDate dateWithTimeIntervalSinceNow:-1]];
    [self.testTimer start];
    NSLog(@"Start button pressed!");
}
@end

willActivate の下でタイマーを停止する理由は、ビューが表示されるとすぐにカウントアップを開始しないようにするためです。

于 2014-12-03T21:00:14.170 に答える