質問: [uiimage imagenamed:@"newthumbimage_64px.png"]; [self.slider setthumbimage:thumb forstate:uicontrolstatenormal]; [self.slider setthumbimage:thumb forstate:uicontrolstatehighlighted]; [thumb release]; 関連する値を計算するには、親指の画像を操作しているときに、親指の画像の中心点がどこにあるかを知る必要があります。そして、ポイントはそのスーパービューの座標にある必要があります。isliderのドキュメントを見ると、これを追跡するプロパティは見つかりませんでした。これを計算する簡単な方法はありますか、それとも既存の値から導き出すことができますか?
回答: 最初にuisliderの値の間隔をパーセントでマッピングし、次にスライダーのサイズの同じパーセントから親指のサイズのパーセントを引いた値を取得することでアプローチしました。この値に親指のサイズの半分を加算して、中心を取得しました。 - (float)mapvalueinintervalinpercents: (float)value min: (float)minimum max: (float)maximum { return (100 / (maximum - minimum)) * value - (100 * minimum)/(maximum - minimum); } - (float)xpositionfromslidervalue:(uislider *)aslider { float percent = [self mapvalueinintervalinpercents: aslider.value min: aslider.minimumvalue max: aslider.maximumvalue] / 100.0; return percent * aslider.frame.size.width - percent * aslider.currentthumbimage.size.width + aslider.currentthumbimage.size.width / 2; }