VLCSlider.m 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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. [super awakeFromNib];
  20. }
  21. @end
  22. @implementation VLCSlider
  23. - (instancetype)initWithFrame:(CGRect)frame
  24. {
  25. self = [super initWithFrame:frame];
  26. if (self)
  27. [self setThumbImage:[UIImage imageNamed:@"sliderKnob"] forState:UIControlStateNormal];
  28. return self;
  29. }
  30. - (void)awakeFromNib
  31. {
  32. [self setThumbImage:[UIImage imageNamed:@"sliderKnob"] forState:UIControlStateNormal];
  33. [super awakeFromNib];
  34. }
  35. @end
  36. @interface VLCResettingSlider ()
  37. @property (nonatomic, weak) UITapGestureRecognizer *doubleTapRecognizer;
  38. @end
  39. @implementation VLCResettingSlider
  40. - (void)awakeFromNib
  41. {
  42. [super awakeFromNib];
  43. if (self.resetOnDoubleTap) {
  44. [self setResetOnDoubleTap:YES];
  45. }
  46. }
  47. - (void)setResetOnDoubleTap:(BOOL)resetOnDoubleTap
  48. {
  49. _resetOnDoubleTap = resetOnDoubleTap;
  50. if (resetOnDoubleTap && self.doubleTapRecognizer == nil) {
  51. UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didDoubleTap:)];
  52. recognizer.numberOfTapsRequired = 2;
  53. [self addGestureRecognizer:recognizer];
  54. self.doubleTapRecognizer = recognizer;
  55. } else if (!resetOnDoubleTap) {
  56. UITapGestureRecognizer *recognizer = self.doubleTapRecognizer;
  57. [self removeGestureRecognizer:recognizer];
  58. self.doubleTapRecognizer = nil;
  59. }
  60. }
  61. - (IBAction)didDoubleTap:(id)sender {
  62. self.value = self.defaultValue;
  63. [self sendActionsForControlEvents:UIControlEventValueChanged];
  64. }
  65. @end