在标签中打印值时重叠

时间:2012-11-14 09:12:02

标签: iphone uilabel sum

我想打印最后一个值的总和,但是下面的代码通过重叠打印显示标签中的所有值,那么如何只显示标签中值的最后一个总和

-(void)dataPrinting
{
int total=0;
for (int i = 0; i < [totalData count]; i++)
{
    total +=i;
}
UILabel * lbl=[[UILabel alloc]initWithFrame:CGRectMake(100,75, 200, 60)];
lbl.text=[NSString stringWithFormat:@"%d",total];
lbl.font=[UIFont fontWithName:@"Arial" size:60];
lbl.textColor=[UIColor whiteColor];
lbl.backgroundColor=[UIColor clearColor];
[scrollView addSubview:lbl];
 }

2 个答案:

答案 0 :(得分:0)

 -(void)dataPrinting
   {
 int total=0;
  for (int i = 0; i < [totalData count]; i++)
     {
     total += [totalData  objectAtindex:i];  /// you need to access value in the array
   }
UILabel * lbl=[[UILabel alloc]initWithFrame:CGRectMake(100,75, 200, 60)];
lbl.text=[NSString stringWithFormat:@"%d",total];
lbl.font=[UIFont fontWithName:@"Arial" size:60];
lbl.textColor=[UIColor whiteColor];
lbl.backgroundColor=[UIColor clearColor];
[scrollView addSubview:lbl];
}

答案 1 :(得分:0)

不确定你的意思是“最后一个值的总和”。但是,您可以使用 lastObject 来访问数组的最后一个元素。

int total = [[totalData lastObject] intValue];

<强>更新

您在代码中执行的操作是将索引i添加到total。请改用以下内容:     total + = [[totalData objectAtIndex:i] intValue];

如果您看到标签彼此重叠,您可能会多次调用dataPrinting方法。因为你不删除旧的,他们会留下来。您可以创建标签的属性或为标签添加标签并重复使用相同的标签,只需更改标签上的文字即可。

在标题中:

@property (strong, nonatomic) UILabel *totalLabel;

在您的实施中:

-(UILabel)totalLabel
{
    if (_totalLabel == nil)
    {
        _totalLabel = [[UILabel alloc]initWithFrame:CGRectMake(100,75, 200, 60)];
        _totalLabel.font=[UIFont fontWithName:@"Arial" size:60];
        _totalLabel.textColor=[UIColor whiteColor];
        _totalLabel.backgroundColor=[UIColor clearColor];
        [scrollView addSubview:_totalLabel];
    }
    return _totalLabel;
}

-(void) dataPrinting
{
    int total=0;
    for (int i = 0; i < [totalData count]; i++)
    {
        total += [[totalData objectAtIndex:i] intValue];
    }
    self.totalLabel.text = [NSString stringWithFormat:@"%d",total];;
}