これは IB ソリューションではありませんが、UIView をサブクラス化し、drawRect
メソッドをオーバーライドしてカスタム グラデーションを追加できます。これにより、好きな数の色を配置し、それらをハードまたはスムーズに移行させることができます. これを行うためのさまざまな方法が必要な多くの優れたチュートリアルがオンラインにあります (より複雑なものもあれば、非常に単純なものもあります)。
かなり単純なもう 1 つのオプションは、オーバーライドdrawRect
し、背景を赤にfill
してから、ビューの下半分を占める長方形にすることです。色間の派手な遷移や滑らかな遷移はできませんが、実装は非常に簡単です。たとえば、次の行に沿ったものが機能するはずです。
-(void)drawRect:(CGRect)rect {
CGRect upperRect = CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height * percentDone);
CGRect lowerRect = CGRectMake(rect.origin.x, rect.origin.y + (rect.size.height * percentDone), rect.size.width, rect.size.height *(1-percentDone));
[[UIColor redColor] set];
UIRectFill(upperRect);
[[UIColor greenColor] set];
UIRectFill(lowerRect);
}
これは、ユーザーのステップに関連付けることができるfloat percentDone
(宣言、、property(nonatomic)
)です。synthesize
次に、ユーザーが何かを行ったときにビューを更新するだけです
splitView.percentDone = .5;
[splitView setNeedsDisplay];
これもアニメーションで滑らかにすることができます。