Skip to content

Commit c257d6d

Browse files
dstdnkdeorst
andauthored
Fix minimumTrackImage, maximumTrackImage, and trackImage do not work together (#275)
* Fix minimumTrackImage, maximumTrackImage, and trackImage do not work together * Fix deps not linked on iOS. Fix installation problem with detox. (#274) * Fix deps not linked on iOS. Fix installation problem with detox. * Updated config.yml Co-authored-by: Dmitry Stadnik <[email protected]> * Use private properties to keep trackImage info. * Fix minimumTrackImage, maximumTrackImage, and trackImage do not work together * Use private properties to keep trackImage info. * Small syntax fix. Co-authored-by: Dmitry Stadnik <[email protected]>
1 parent 649c91a commit c257d6d

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

src/ios/RNCSlider.m

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
@implementation RNCSlider
1111
{
1212
float _unclippedValue;
13+
bool _minimumTrackImageSet;
14+
bool _maximumTrackImageSet;
1315
}
1416

1517
- (instancetype)initWithFrame:(CGRect)frame
@@ -64,20 +66,25 @@ - (void)setTrackImage:(UIImage *)trackImage
6466
if (trackImage != _trackImage) {
6567
_trackImage = trackImage;
6668
CGFloat width = trackImage.size.width / 2;
67-
UIImage *minimumTrackImage = [trackImage resizableImageWithCapInsets:(UIEdgeInsets){
68-
0, width, 0, width
69-
} resizingMode:UIImageResizingModeStretch];
70-
UIImage *maximumTrackImage = [trackImage resizableImageWithCapInsets:(UIEdgeInsets){
71-
0, width, 0, width
72-
} resizingMode:UIImageResizingModeStretch];
73-
[self setMinimumTrackImage:minimumTrackImage forState:UIControlStateNormal];
74-
[self setMaximumTrackImage:maximumTrackImage forState:UIControlStateNormal];
69+
if (!_minimumTrackImageSet) {
70+
UIImage *minimumTrackImage = [trackImage resizableImageWithCapInsets:(UIEdgeInsets){
71+
0, width, 0, width
72+
} resizingMode:UIImageResizingModeStretch];
73+
[self setMinimumTrackImage:minimumTrackImage forState:UIControlStateNormal];
74+
}
75+
if (!_maximumTrackImageSet) {
76+
UIImage *maximumTrackImage = [trackImage resizableImageWithCapInsets:(UIEdgeInsets){
77+
0, width, 0, width
78+
} resizingMode:UIImageResizingModeStretch];
79+
[self setMaximumTrackImage:maximumTrackImage forState:UIControlStateNormal];
80+
}
7581
}
7682
}
7783

7884
- (void)setMinimumTrackImage:(UIImage *)minimumTrackImage
7985
{
8086
_trackImage = nil;
87+
_minimumTrackImageSet = true;
8188
minimumTrackImage = [minimumTrackImage resizableImageWithCapInsets:(UIEdgeInsets){
8289
0, minimumTrackImage.size.width, 0, 0
8390
} resizingMode:UIImageResizingModeStretch];
@@ -92,6 +99,7 @@ - (UIImage *)minimumTrackImage
9299
- (void)setMaximumTrackImage:(UIImage *)maximumTrackImage
93100
{
94101
_trackImage = nil;
102+
_maximumTrackImageSet = true;
95103
maximumTrackImage = [maximumTrackImage resizableImageWithCapInsets:(UIEdgeInsets){
96104
0, 0, 0, maximumTrackImage.size.width
97105
} resizingMode:UIImageResizingModeStretch];

0 commit comments

Comments
 (0)