这不是 IB 解决方案,但您可以继承 UIView 并覆盖该drawRect
方法以添加自定义渐变。这将允许您放置您喜欢的任意数量的颜色,并让它们过渡或平滑过渡。网上有很多不错的教程,应该有不同的方法来做到这一点(一些更详细,一些非常简单)。
另一个相当简单的选项是覆盖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);
}
这percentDone
是一个浮点数(声明,,,property(nonatomic)
)synthesize
,您可以将其绑定到用户的步骤。然后只需在用户执行某些操作时更新视图
splitView.percentDone = .5;
[splitView setNeedsDisplay];
你也可以用动画来平滑它。