+#else // USE_IPHONE
+
+/* On iOS, we have control over how the value is displayed, but there's no
+ way to transform the value on input and output: if we wrap 'value' and
+ 'setValue' analagously to what we do on MacOS, things fail in weird
+ ways. Presumably some parts of the system are accessing the value
+ instance variable directly instead of going through the methods.
+
+ So the only way around this is to enforce that all of our calls into
+ this object use a new API: 'transformedValue' and 'setTransformedValue'.
+ The code in XScreenSaverConfigSheet uses that instead.
+ */
+
+- (CGRect)thumbRectForBounds:(CGRect)bounds
+ trackRect:(CGRect)rect
+ value:(float)value
+{
+ CGRect thumb = [super thumbRectForBounds: bounds
+ trackRect: rect
+ value: [self transformValue:value]];
+ if (inverted)
+ thumb.origin.x = rect.size.width - thumb.origin.x - thumb.size.width;
+ return thumb;
+}
+
+-(double) transformedValue