123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- /*
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
- #import "RCTSlider.h"
- @implementation RCTSlider {
- float _unclippedValue;
- }
- - (void)setValue:(float)value
- {
- _unclippedValue = value;
- super.value = value;
- }
- - (void)setMinimumValue:(float)minimumValue
- {
- super.minimumValue = minimumValue;
- super.value = _unclippedValue;
- }
- - (void)setMaximumValue:(float)maximumValue
- {
- super.maximumValue = maximumValue;
- super.value = _unclippedValue;
- }
- - (void)setTrackImage:(UIImage *)trackImage
- {
- if (trackImage != _trackImage) {
- _trackImage = trackImage;
- CGFloat width = trackImage.size.width / 2;
- UIImage *minimumTrackImage = [trackImage resizableImageWithCapInsets:(UIEdgeInsets){0, width, 0, width}
- resizingMode:UIImageResizingModeStretch];
- UIImage *maximumTrackImage = [trackImage resizableImageWithCapInsets:(UIEdgeInsets){0, width, 0, width}
- resizingMode:UIImageResizingModeStretch];
- [self setMinimumTrackImage:minimumTrackImage forState:UIControlStateNormal];
- [self setMaximumTrackImage:maximumTrackImage forState:UIControlStateNormal];
- }
- }
- - (void)setMinimumTrackImage:(UIImage *)minimumTrackImage
- {
- _trackImage = nil;
- minimumTrackImage =
- [minimumTrackImage resizableImageWithCapInsets:(UIEdgeInsets){0, minimumTrackImage.size.width, 0, 0}
- resizingMode:UIImageResizingModeStretch];
- [self setMinimumTrackImage:minimumTrackImage forState:UIControlStateNormal];
- }
- - (UIImage *)minimumTrackImage
- {
- return [self thumbImageForState:UIControlStateNormal];
- }
- - (void)setMaximumTrackImage:(UIImage *)maximumTrackImage
- {
- _trackImage = nil;
- maximumTrackImage =
- [maximumTrackImage resizableImageWithCapInsets:(UIEdgeInsets){0, 0, 0, maximumTrackImage.size.width}
- resizingMode:UIImageResizingModeStretch];
- [self setMaximumTrackImage:maximumTrackImage forState:UIControlStateNormal];
- }
- - (UIImage *)maximumTrackImage
- {
- return [self thumbImageForState:UIControlStateNormal];
- }
- - (void)setThumbImage:(UIImage *)thumbImage
- {
- [self setThumbImage:thumbImage forState:UIControlStateNormal];
- }
- - (UIImage *)thumbImage
- {
- return [self thumbImageForState:UIControlStateNormal];
- }
- - (void)accessibilityIncrement
- {
- [super accessibilityIncrement];
- if (_onSlidingComplete) {
- _onSlidingComplete(@{
- @"value" : @(self.value),
- });
- }
- }
- - (void)accessibilityDecrement
- {
- [super accessibilityDecrement];
- if (_onSlidingComplete) {
- _onSlidingComplete(@{
- @"value" : @(self.value),
- });
- }
- }
- @end
|