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

「最後の値の合計」の意味がわかりません。ただし、 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];;
}
于 2012-11-14T09:46:33.207 に答える
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 に答える