2013-04-14 47 views
0

我是iOS新手,我想知道如何在觸摸結束時讓我的滑塊僅對作出反應。 我明白這一點與方​​法:iOS-滑塊僅在觸摸時發生反應

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 

但我不能使它發揮作用。

有沒有人可以幫我用簡單的&明確的例子?

請以編程方式回答我不使用storyBoard。

在此先感謝!

回答

0

您可以勾選UIControlEventTouchUpInside-Outside而不是-ValueChanged(如果您現在正在這樣做)。

編輯:或者,人多一點優雅,我會說,使用UIControlEventValueChanged,但也有事件作爲參數傳遞給你的方法提供:

[self.slider addTarget:self action:@selector(handleValueChanged:withEvent:) forControlEvents:UIControlEventValueChanged];

再檢查的相位觸摸,看看它是否處於ended狀態。

1

您可以添加手勢識別:

UITapGestureRecognizer *tapGestureRecognizer = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onSliderTap:)] autorelease]; 
[slider addGestureRecognizer:tapGestureRecognizer]; 

- (void)onSliderTap:(UIGestureRecognizer *)gestureRecognizer { 
    // handle event 
} 

或滑塊添加一些動作:

[slider addTarget:self action:@selector(onTouchEnded:) forControlEvents:UIControlEventTouchUpInside]; 
0

找到了答案!

這些人幫助了我很多:Detecting touches on a UISlider?

用小精度:

爲相關滑塊動作指派他爲:

[self.slider addTarget:self action:@selector(touchEnded:) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside]; 

和方法簽名是:

- (IBAction)touchEnded:(id) sender 

與故事板在它看起來有點不同將動作分配給滑塊。

感謝您的答案!

0

您必須設置屬性連續。

包含一個布爾值,指示滑塊值中的更改是否生成連續更新事件。

mySlider.continuous= NO;