动态创建多个UIView

时间:2014-04-12 21:13:31

标签: ios objective-c animation uiview

我想使用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!");
         }];

    }
}

请帮助我理清我的想法!

谢谢!

0 个答案:

没有答案