VLCSlider.m 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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.isAccessibilityElement = YES;
  18. [self setThumbImage:[UIImage imageNamed:@"sliderKnob"] forState:UIControlStateNormal];
  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. }
  33. @end
  34. @interface VLCResettingSlider ()
  35. @property (nonatomic, weak) UITapGestureRecognizer *doubleTapRecognizer;
  36. @end
  37. @implementation VLCResettingSlider
  38. - (void)awakeFromNib
  39. {
  40. [super awakeFromNib];
  41. if (self.resetOnDoubleTap) {
  42. [self setResetOnDoubleTap:YES];
  43. }
  44. }
  45. - (void)setResetOnDoubleTap:(BOOL)resetOnDoubleTap
  46. {
  47. _resetOnDoubleTap = resetOnDoubleTap;
  48. if (resetOnDoubleTap && self.doubleTapRecognizer == nil) {
  49. UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didDoubleTap:)];
  50. recognizer.numberOfTapsRequired = 2;
  51. [self addGestureRecognizer:recognizer];
  52. self.doubleTapRecognizer = recognizer;
  53. } else if (!resetOnDoubleTap) {
  54. UITapGestureRecognizer *recognizer = self.doubleTapRecognizer;
  55. [self removeGestureRecognizer:recognizer];
  56. self.doubleTapRecognizer = nil;
  57. }
  58. }
  59. - (IBAction)didDoubleTap:(id)sender {
  60. self.value = self.defaultValue;
  61. [self sendActionsForControlEvents:UIControlEventValueChanged];
  62. }
  63. @end