我想用多种颜色填写UIView背景.我想将它用作各种状态栏,因此如果完成1/2必要步骤,则UIView背景将为1/2绿色和1/2红色.当用户完成更多步骤(比如2/3)时,更多的UIView背景变为绿色(在这种情况下为2/3).
我猜我需要覆盖
-(void) drawREct: (CGRect) rect
我想我会得到UIView,弄清楚它有多大,然后把它分成2个矩形然后填充那些矩形.
另一种选择是以编程方式添加2个UIViews,但我是IB的粉丝.
有可能像我想要的那样划分UIView吗?
谢谢
解决方法
这不是IB解决方案,但您可以继承UIView并覆盖drawRect方法以添加自定义渐变.这将允许您放置任何数量的颜色,并让它们过硬或平滑过渡.网上有许多不错的教程应该采用不同的方法(更精细,更简单一些).
另一个相当简单的选项是覆盖drawRect,使背景变为红色,然后填充一个占据视图下半部分的矩形.它不允许颜色之间的花哨或平滑过渡,但它很容易实现.例如,沿着这些方向的东西应该工作:
-(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.height *(1-percentDone)); [[UIColor redColor] set]; UIRectFill(upperRect); [[UIColor greenColor] set]; UIRectFill(lowerRect); }
这里percentDone是一个浮点数(声明,属性(非原子),合成),你可以绑定到用户的步骤.然后只需在用户执行操作时更新视图
splitView.percentDone = .5; [splitView setNeedsDisplay];
您也可以使用动画来平滑这一点.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。