我想使用UIView
动画制作条形图。将使用从我的持久存储中检索的数据动态创建条形图。
为了教自己如何使用UIView
动画,我跟着this Ray Wenderlich tutorial然后基于它构建了一个修改过的应用。因此,我对动画方面感到满意 - 至少只要它涉及由硬编码数据指定的离散(故事板创建)视图。
但是,在完整实施中,条形图将有多个列,其数量,高度,宽度等将按实时数据按比例指定。
此时,我已经在故事板中创建了一个UIView,链接到一个名为RiserBar
的自定义UIView子类,正在考虑动态创建视图实例(RiserBar *
)。然而 - 我觉得有点愚蠢承认 - 我意识到我真的不知道如何实现这个想法。例如,如果我正在遍历包含多个条形规范的数组,那会是什么样子?每个酒吧都有名字吗?如何生成这些名称?
这是我想到的代码。 aBAr
是一个实例变量。 frame
规范以及specArray
只是假人,因为确切的规范机制尚不清楚,但想法是创建尽可能多的RiserBar
个对象是specArray
中的条目:
-(void) makeBarChart
{
RiserBar *aBar;
for (int i=0; i<specArray.count; i++)
{
aBar = [[RiserBar alloc]initWithFrame:CGRectZero];
aBar.backgroundColor = [UIColor redColor];
[self.view addSubview:aBar];
[UIView animateWithDuration:1
delay:.2
options: UIViewAnimationCurveEaseOut
animations:^
{
aBar.frame = CGRectMake(50, self.view.frame.origin.y, startingSpec.width, startingSpec.height);
aBar.frame = CGRectMake(50, self.view.frame.origin.y, endSpec.width, endSpec.height);
}
completion:^(BOOL finished)
{
NSLog(@"Done!");
}];
}
}
请帮助我理清我的想法!
谢谢!