-1

注意: この質問に答えるには、iOS 開発の知識が必要です。

Xcode 環境内で構築しているアプリのスクリーン フラッシュ機能を作成しました。次のように画面が点滅します。

背景白、赤文字....背景赤、白文字、0.25秒間隔

ユーザーが画面をタップしてアプリ内を先に進むまで、フラッシュは継続的に発生します。これを達成するために使用したコードは次のとおりです。

    @interface OrderCashButtonSignal : UIViewController

 @property (weak, nonatomic) IBOutlet UILabel *orderCashLabel;
 @property (strong, nonatomic) NSTimer *colorTimer;


 @end

    - (void)viewDidLoad
 {
[super viewDidLoad];

self.orderCashLabel.backgroundColor = [UIColor whiteColor];
self.orderCashLabel.textColor = [UIColor redColor];
self.colorTimer = [NSTimer scheduledTimerWithTimeInterval:0.25 target:self   selector:@selector(changeColor) userInfo:nil repeats:YES];

}

(void)changeColor{

[UIView animateWithDuration:0.25 animations:^{

    if ([self.orderCashLabel.backgroundColor isEqual:[UIColor whiteColor]]&&[self.orderCashLabel.textColor isEqual:[UIColor redColor]]) {
        self.orderCashLabel.backgroundColor = [UIColor redColor];
        self.orderCashLabel.textColor = [UIColor whiteColor];
    }
    else{

        self.orderCashLabel.backgroundColor = [UIColor whiteColor];
        self.orderCashLabel.textColor = [UIColor redColor];

    }


 }];


  }

このアプリの Android バージョンの Eclipse でこの動作を模倣しようとしましたが、Xcode で行った方法でタイマーと changeColor メソッドを一緒に実装する方法がわかりません。それらが異なる言語であり、方法が異なることは理解しています。Androidフレームワークを回避して問題を解決できるかもしれないと思っていましたが、惨めに失敗しました。助言がありますか?前もって感謝します!

4

1 に答える 1

1

変数:

Timer timer = new timer();
    boolean b = true;

xmlandroid:backgroundプロパティを#FFFFFFandroid:textColorに設定し#FF0000ます。onCreate()に挿入:

timerStep = new TimerTask() {

        @Override
        public void run() {
            runOnUiThread(new Runnable() {
                  @Override
                  public void run() {
                    TextView t = (TextView) findViewById(R.id.YourDefinedTextViewID);
                if (b) {
                    t.setBackgroundColor(Color.RED);
                    t.setTextColor(Color.WHITE);
                    b=false;
                } else {
                    t.setBackgroundColor(Color.WHITE);
                    t.setTextColor(Color.RED);
                    b=true;
                }
                }
            }
        }
};
timer.schedule(timerStep,250,250);
于 2013-02-12T18:18:53.423 に答える