在循环中多次设置UILabel文本

时间:2013-03-19 00:20:34

标签: objective-c cocoa-touch

我在XCode中愚弄,试图了解一下iOS SDK和Objective-C。

我在下面有这个for循环,它应该在屏幕上打印出几个值(取决于所选择的月数),而是只打印出最终值。

有人能指出原因吗?

提前感谢一帮!

for (int i = 1; i <= myMonthsDouble; i++)
{
    myPaymentAmount = (myBalanceDouble/10) + myInterestDouble;
    myBalanceDouble -= myPaymentAmount;
    //convert myPaymentAmount double into string named myPaymentAmountString
    NSString *myPaymentAmountString = [NSString stringWithFormat:@"%f", myPaymentAmount];
    NSString *paymentInformation = [[NSString alloc] initWithFormat:@"%@ months, %@ per month.", monthsString, myPaymentAmountString];
    myInterestDouble = (myBalanceDouble * (myInterestDouble/100))/12;
    self.label.text = paymentInformation;
}

1 个答案:

答案 0 :(得分:3)

它只打印屏幕的最后一个值,因为您只有一个标签。每次到达循环结束时,您都要设置覆盖最后一个值的标签文本。如果要将所有这些标签打印到屏幕上,则需要使用多个标签,或者必须将这些字符串附加在一起并将它们放在标签或格式为UITextView的格式中,以便它们可以所有人都可以看到(很可能是文本视图,但可以用标签来完成。)

这样做的一个例子是:

label.text = [label.text stringByAppendingString:newString];
numLines++; //this starts at 0;

然后在最后:

label.numberOfLines = numLines;