1

このセグメント化されたコントロールを取得しましたが、画像が正しく表示されません:(円は緑、黄、赤である必要があります。理解するにはスクリーンショットを参照してください:D

私が間違っていることや不足していることを知っている場合は、答えてください:)ありがとうございます!

これはiOS 6で機能しました..

緑色の円の緑色が選択されています

青い円が表示されるだけですか?

4

1 に答える 1

6

iOS 7 では、画像はマスクとして使用され、標準の iOS 7 着色メカニズム (UIToolbarアイコンによく似ています) を使用して着色されます。

Interface Builderでこれを設定する方法がわかりませんが、コードでの解決策は、次のように各画像を元の形式でレンダリングするように設定することです:

UIImage *correctImage = [[UIImage imageNamed:@"someName"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

次に、この画像をセグメント化されたコントロールで使用します。

1 つのオプションは、viewDidLoadメソッド内のセグメント化されたコントロールを次のように更新することです。

NSUInteger count = control.numberOfSegments;
for (NSUInteger i = 0; i < count; i++) {
    UIImage *original = [control imageForSegmentAtIndex:i];
    UIImage *fixed = [original imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
    [control setImage:fixed forSegmentAtIndex:i];
}
于 2013-11-11T16:57:45.127 に答える