2010年06月16日

iPhoneでUISliderのTouch Upイベントが二度呼ばれる。

iPhoneのUISliderを弄ってて気づいたんだが、"Touch Up"のイベントが何故か二度コールされる。

調べてみると、UISliderのendTrackingWithTouch:withEvent:メソッドが最初の奴、で、二度目の奴はUIControlからのtouchesEnded:withEventかららしい。

で、調べた結果一番手っ取り早い修正の方法はフラグを使う事。(結局それかいっ!w)

Touch Down用にsliderDown、
Touch Up用にsliderUpというメソッドを用意。
メンバー変数としてpressed = NOと設定。

あとは

-(IBAction) touchDownSlider:(UISlider *)slider_ {
if(!pressed) {
NSLog(@"touchDownSlider: %f", slider_.value);

pressed = YES;
}
}

-(IBAction) touchUpSlider:(UISlider *)slider_ {
if(pressed) {
NSLog(@"touchUpSlider: %f", slider_.value);

pressed = NO;
}
}


として終わり。

はぁiphoneはややこしや。
ラベル:iPhone UISlider
posted by 1.618 at 16:25| Comment(0) | iPhone | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は180日以上新しい記事の投稿がないブログに表示されております。