我是iOS新手,我想知道如何在觸摸結束時讓我的滑塊僅對作出反應。 我明白這一點與方法:iOS-滑塊僅在觸摸時發生反應
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
但我不能使它發揮作用。
有沒有人可以幫我用簡單的&明確的例子?
請以編程方式回答我不使用storyBoard。
在此先感謝!
我是iOS新手,我想知道如何在觸摸結束時讓我的滑塊僅對作出反應。 我明白這一點與方法:iOS-滑塊僅在觸摸時發生反應
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
但我不能使它發揮作用。
有沒有人可以幫我用簡單的&明確的例子?
請以編程方式回答我不使用storyBoard。
在此先感謝!
您可以勾選UIControlEventTouchUpInside
和-Outside
而不是-ValueChanged
(如果您現在正在這樣做)。
編輯:或者,人多一點優雅,我會說,使用UIControlEventValueChanged
,但也有事件作爲參數傳遞給你的方法提供:
[self.slider addTarget:self action:@selector(handleValueChanged:withEvent:) forControlEvents:UIControlEventValueChanged];
再檢查的相位觸摸,看看它是否處於ended
狀態。
您可以添加手勢識別:
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];
找到了答案!
這些人幫助了我很多:Detecting touches on a UISlider?
用小精度:
爲相關滑塊動作指派他爲:
[self.slider addTarget:self action:@selector(touchEnded:) forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside];
和方法簽名是:
- (IBAction)touchEnded:(id) sender
與故事板在它看起來有點不同將動作分配給滑塊。
感謝您的答案!
您必須設置屬性連續。
包含一個布爾值,指示滑塊值中的更改是否生成連續更新事件。
mySlider.continuous= NO;