2012-04-09 11 views
0

私たちのiOSアプリでは、カスタムデザインを使用するためにUISliderをサブクラス化しました。しかし、私たちが何を試みても、UISliderで使用される画像は歪んで出てきます。たとえば、元のサムの矩形は156x44です。これを15x22にオーバーライドしました。イメージが爆発します。他の順列は、親指がオフトラックになり、依然として爆発する。画像上のパディングを使用するか、適切な関数をオーバーライドすることによって、サムとトラックの画像サイズを正しく設定するにはどうすればよいですか?iOS:カスタムUISliderの画像サイズ

+0

ない 'トラックバー' でUISliderを意味ですか? – CodaFi

+0

ええ:)私の質問を更新しました。 – Pedery

答えて

2

私は、UISliderは1つの解像度と1つだけ設計されており、要素を小さくするとユーザーエクスペリエンスに悪影響を及ぼすと思います。しかし、あなたは本当に、これらのいずれかを試してみたい場合:

  1. して大きな画像を使用して、いくつかのCGAffineTransformMakeScale(scaleXと、scaleYの)にUISliderインスタンスのtransformプロパティを設定します。

  2. イメージに透明なパディングを追加するため、サイズは小さく見えますが、実際には適切なサイズです。

つまり、本当にあなたのUISliderを小さくしたい場合。あなたが悩まされているのは歪みですが、自動アップスケーリングの場合は、UIImageをストレッチング可能なf.iとしてロードすることを検討してください。

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets // iOS >=5.0 

または

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight // iOS <5.0 
+0

ユーザーエクスペリエンスに関する警告。多くのiOS要素の44ピクセルサイズは設計によるものです。 [iOSヒューマンインタフェースガイドライン](http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/UEBestPractices/UEBestPractices.html#//apple_ref/doc/uid/TP40006556-CH20-SW1 )、 "ターゲットを指先サイズにする"の下で、 "アプリケーションのタップ可能な要素に約44 x 44ポイントのターゲット領域を与える"と言う。あなたの2番目の提案(透明な詰め物を追加する)はこれを達成するでしょう。 – Dondragmer

+0

ありがとう!これを試してみましょう。私たちの主な問題は、画像そのもののサイズではなく、どんな種類のパディングがあっても歪んでしまうということです。私たちはさまざまな透明なパディングを試しましたが、それは足りません。 *私たちの*画像サイズをそのまま使用するようにUISliderを設定するにはどうすればよいですか?あるいは、私たちが使っているものをどんなサイズにして鮮明に見せるべきですか? – Pedery

関連する問題