Skip to content

iOS: negative min value and 0 as maximum value turns maximum to 1 #780

@TheWandere

Description

@TheWandere

Environment

  • react-native info output:
System:
  OS: macOS 26.3
  CPU: (12) arm64 Apple M2 Pro
  Memory: 109.70 MB / 16.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 20.19.5 // also tried node 24
    path: /Users/.../.nvm/versions/node/v20.19.5/bin/node
  npm:
    version: 10.9.4
    path: /Users/.../node_modules/.bin/npm
  Watchman: Not Found
Managers:
  CocoaPods:
    version: 1.16.2
    path: /opt/homebrew/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 25.2
      - iOS 26.2
      - macOS 26.2
      - tvOS 26.2
      - visionOS 26.2
      - watchOS 26.2
  Android SDK: Not Found
IDEs:
  Android Studio: 2025.1 AI-251.26094.121.2513.14007798
  Xcode:
    version: 26.3/17C529
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.17
    path: /Users/.../Library/Java/JavaVirtualMachines/corretto-17.0.17/Contents/Home/bin/javac
  Ruby:
    version: 2.6.10
    path: /usr/bin/ruby
npmPackages:
  "@react-native-community/cli":
    installed: 15.1.3
    wanted: 15.1.3
  react:
    installed: 19.1.0
    wanted: 19.1.0
  react-native:
    installed: 0.81.5
    wanted: 0.81.5
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: true
iOS:
  hermesEnabled: true
  newArchEnabled: true

Description

When creating a slider with minimumValue = -10 and maximumValue = 0, the application in android works as expected, but on iOS the maximumValue gets overwritten to 1.

Reproducible Demo

<Slider
      value={-5}
      minimumValue={-10}
      maximumValue={0} 
      step={0.5}
      onValueChange={(value) => {console.log('CURENTLY AT: ', value)}}
      onSlidingComplete=={(value) => {console.log('COMPLETE AT: ', value)}}
      tapToSeek={false}
/>

Using this slider the logs will show CURRENTLY AT 1 when sliding fully to the right on iOS and 0 on Android

My current workaround

I set maximum to 0.1 and for my business logic in onSlidingComplete I do Math.min(value, 0)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug reportSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions