我的任务是使用单词计数开发应用程序,并在运行时生成的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);
所以请尽可能帮助我,并为我提供一些示例代码。
提前感谢。
答案 0 :(得分:0)
您似乎正在创建大量单词对象,并将它们添加到屏幕上。
在for循环中,您可以将代码执行到kNumImages
。并且在每次运行中,word
对象将替换为新对象。
因此,当您稍后获得该单词时,它将是您创建的最后一个word
对象(因此是最后一个单词)。
为了解决这个问题,您可以使用NSMutableArray
并继续向其添加新的UILabel
对象(而不是创建word
对象)。然后再做类似
[array objectAtIndex:0].text;