2012-03-23 14 views
0

私は、ワードカウントとランタイムで表示するアプリケーションを開発するタスクを、サブビューとしてuilrollを使用してuiscrollviewを生成しました。現在のuilabelテキストをuiscrollビューランタイムから取得する方法

このプロセスは、その時点で1000ページの単語がスクロールビューで作成されたrutimeで作成されたuilabelを埋め込むようなものです。すべては実行時から設定されます。アプリケーションには、ボタンクリック時に現在のuilabelテキストを追加するボタンが1つあります。

であり、単語はデータベースからランダムに来ています。ボタンをクリックすると、別の言葉が私に与えられます。スクロール表示された単語から表示されます。続き

は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

多くの単語オブジェクトを作成して画面に追加しているようです。

forループでは、kNumImagesまでコードを実行します。各実行では、wordオブジェクトが新しいものに置き換えられます。

これで後で単語を取得すると、作成した最後のwordオブジェクト(つまり最後の単語)になります。

これを得るには、NSMutableArrayを使用して、UILabelオブジェクトを追加してください(wordオブジェクトを作成する代わりに)。そして、後で何かをするなど

[array objectAtIndex:0].text; 
関連する問題