3

私はUIApperance自分の中で背景画像を設定するために使用していますUISegmentedControl、次のように:

[[UISegmentedControl appearance] setBackgroundImage:normalBackgroundImage
                                           forState:UIControlStateNormal 
                                         barMetrics:UIBarMetricsDefault];

[[UISegmentedControl appearance] setBackgroundImage:selectedBackgroundImage 
                                           forState:UIControlStateSelected 
                                         barMetrics:UIBarMetricsDefault];

しかし、私の画像は標準UISegmentedControlサイズよりも背が高いです。後で、次のようにコントロールのサイズを変更できるように、コントロールの背景画像を取得しようとしています。

UIImage *imageForHeight = [self.segmentedControl 
                                backgroundImageForState:UIControlStateNormal 
                                             barMetrics:UIBarMetricsDefault];

このメソッド呼び出しはを返しますがnil、その理由を一生理解することはできません。コントロールは実際に私が入れた画像を使用していますUIAppearance。このメソッドが私の画像を返さない理由、またはセグメント化されたコントロールから背景画像を戻す別の方法を知っている人はいますか?

4

1 に答える 1

0

外観プロキシに画像を設定しましたが、インスタンスから取得しようとしています。インスタンス自体にイメージを設定してみてください。動作するはずです。

プロキシ (複数のコントロールなど) を使用する必要がある場合は、事前に画像サイズを計算し、フレームを調整することをお勧めします。

于 2012-12-01T05:04:31.130 に答える