如何从uiscrollview运行时获取当前的uilabel文本

时间:2012-03-23 15:19:25

标签: iphone uiscrollview uilabel

我的任务是使用单词计数开发应用程序,并在运行时生成的uiscrollview中显示uilabel作为子视图。

这个过程就像当用户将在那个时候加载页面时,1000个单词将用scrollview填充rutime生成的uilabel。所有的东西都是从运行时设置的。但是应用程序我们有一个按钮,可以在按钮点击时添加当前的uilabel文本。

这些词随机出现在数据库中。当我点击按钮时,它给了我不同的词。从滚动视图显示的单词。

以下是我使用scrollview填充uilabel数据的代码:

wordName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(searchStatement, 2)];
                [wordNameArray addObject:wordName];
int i = 0;
    for (i = 1; i <= kNumImages; i++)
    {
        randomN = [wordNameArray objectAtIndex:arc4random() % [wordNameArray count]];

        UIImage *image = [UIImage imageNamed:@"word_bg.png"];
        word = [[UILabel alloc]initWithFrame:CGRectMake(15,12,250,120)];
        [word setFont:[UIFont fontWithName:@"Helvetica-Bold" size:36.0f]];
        word.textColor = [UIColor whiteColor];
        word.lineBreakMode = UILineBreakModeWordWrap;
        word.numberOfLines = 2;
        word.textAlignment = UITextAlignmentCenter;
        word.backgroundColor = [UIColor clearColor];
        [word setText:randomN];
        lblWord.text = word.text;

        word.tag = i;
        NSLog(@"tag no:%d",word.tag);

        imageView = [[UIImageView alloc] initWithImage:image];
        [imageView addSubview:word];

        CGRect rect = imageView.frame;
        rect.size.height = kScrollObjHeight;
        rect.size.width = kScrollObjWidth;
        imageView.frame = rect;
        imageView.tag = i;  

        //NSLog(@"%@",word.text);
        //NSLog(@"%@",lblWord.text);

        //  [scrollView1 addSubview:l];
        [scrollView1 addSubview:imageView];

        touchToSee.hidden = TRUE;
        [imageView release];
    }

    [self layoutScrollImages];

以下是我的滚动事件,用于从标签中获取单词,但它给出了数组中的最后一个单词:

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    touchToSee.hidden = TRUE;
    NSLog(@"word-%@",word.text);

}

其他当我点击按钮时,我没有得到完美的工作,所以以下是我的代码:

NSString *getword = [NSString stringWithFormat:@"%@",word.text];
    NSLog(@"lblCountdownBackward:%@",word.text);

所以请尽可能帮助我,并为我提供一些示例代码。

提前感谢。

1 个答案:

答案 0 :(得分:0)

您似乎正在创建大量单词对象,并将它们添加到屏幕上。

在for循环中,您可以将代码执行到kNumImages。并且在每次运行中,word对象将替换为新对象。

因此,当您稍后获得该单词时,它将是您创建的最后一个word对象(因此是最后一个单词)。

为了解决这个问题,您可以使用NSMutableArray并继续向其添加新的UILabel对象(而不是创建word对象)。然后再做类似

的事情
[array objectAtIndex:0].text;