0

我想打印最后一个值的总和,但是下面的代码通过重叠打印显示标签中的所有值,所以我怎样才能只显示标签中的最后一个值总和

-(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];
 }
4

2 回答 2

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];
}
于 2012-11-14T09:24:09.203 回答
0

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

int total = [[totalData lastObject] intValue];

更新:

您在代码中所做的是将索引添加itotal. 请改用以下内容: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];;
}
于 2012-11-14T09:46:33.207 回答