How to get the center of the thumb image of UISlider

后端 未结 12 1819
挽巷
挽巷 2020-11-29 23:18

I\'m creating a custom UISlider to test out some interface ideas. Mostly based around making the thumb image larger.

I found out how to do that, <

12条回答
  •  庸人自扰
    2020-11-29 23:32

    Above solution is useful when UISlider is horizontal. In a recent project,we need to use UISlider with angle. So I need to get both x and y position. Using below to calculate the x,y axis:

    - (CGPoint)xyPositionFromSliderValue:(UISlider *)aSlider WithAngle:(double)aangle{
       //aangle means the dextrorotation angle compare to horizontal.
       float xOrigin = 0.0;
       float yOrigin = 0.0;
       float xValueToaXis=0.0;
       float yValueToaXis=0.0;
       float sliderRange = slider_width-aSlider.currentThumbImage.size.width;
       xOrigin = aSlider.frame.origin.x+slider_width*fabs(cos(aangle/180.0*M_PI));
       yOrigin = aSlider.frame.origin.y;
    
       xValueToaXis = xOrigin + ((((((aSlider.value-aSlider.minimumValue)/(aSlider.maximumValue-aSlider.minimumValue)) * sliderRange))+(aSlider.currentThumbImage.size.width / 2.0))*cos(aangle/180.0*M_PI)) ;
       yValueToaXis =  yOrigin + ((((((aSlider.value-aSlider.minimumValue)/(aSlider.maximumValue-aSlider.minimumValue)) * sliderRange))+(aSlider.currentThumbImage.size.width / 2.0))*sin(aangle/180.0*M_PI));
    
       CGPoint xyPoint=CGPointMake(xValueToaXis, yValueToaXis);
       return xyPoint;
    }
    

    Besides, can I Create a Ranger Slider based on UISlider? Thanks.

提交回复
热议问题