VLCSlider.m 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /*****************************************************************************
  2. * VLCSlider.m
  3. * VLC for iOS
  4. *****************************************************************************
  5. * Copyright (c) 2013 VideoLAN. All rights reserved.
  6. * $Id$
  7. *
  8. * Authors: Felix Paul Kühne <fkuehne # videolan.org>
  9. *
  10. * Refer to the COPYING file of the official project for license.
  11. *****************************************************************************/
  12. #import "VLCSlider.h"
  13. @implementation VLCOBSlider
  14. - (void)awakeFromNib
  15. {
  16. self.accessibilityLabel = NSLocalizedString(@"PLAYBACK_POSITION", nil);
  17. [self setThumbImage:[UIImage imageNamed:@"sliderKnob"] forState:UIControlStateNormal];
  18. [super awakeFromNib];
  19. }
  20. @end
  21. @implementation VLCSlider
  22. - (instancetype)initWithFrame:(CGRect)frame
  23. {
  24. self = [super initWithFrame:frame];
  25. if (self)
  26. [self setThumbImage:[UIImage imageNamed:@"sliderKnob"] forState:UIControlStateNormal];
  27. return self;
  28. }
  29. - (void)awakeFromNib
  30. {
  31. [self setThumbImage:[UIImage imageNamed:@"sliderKnob"] forState:UIControlStateNormal];
  32. [super awakeFromNib];
  33. }
  34. @end
  35. @interface VLCResettingSlider ()
  36. @property (nonatomic, weak) UITapGestureRecognizer *doubleTapRecognizer;
  37. @end
  38. @implementation VLCResettingSlider
  39. - (void)awakeFromNib
  40. {
  41. [super awakeFromNib];
  42. if (self.resetOnDoubleTap) {
  43. [self setResetOnDoubleTap:YES];
  44. }
  45. }
  46. - (void)setResetOnDoubleTap:(BOOL)resetOnDoubleTap
  47. {
  48. _resetOnDoubleTap = resetOnDoubleTap;
  49. if (resetOnDoubleTap && self.doubleTapRecognizer == nil) {
  50. UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didDoubleTap:)];
  51. recognizer.numberOfTapsRequired = 2;
  52. [self addGestureRecognizer:recognizer];
  53. self.doubleTapRecognizer = recognizer;
  54. } else if (!resetOnDoubleTap) {
  55. UITapGestureRecognizer *recognizer = self.doubleTapRecognizer;
  56. [self removeGestureRecognizer:recognizer];
  57. self.doubleTapRecognizer = nil;
  58. }
  59. }
  60. - (IBAction)didDoubleTap:(id)sender {
  61. self.value = self.defaultValue;
  62. [self sendActionsForControlEvents:UIControlEventValueChanged];
  63. }
  64. @end