как получить значения из подпредставления (UILabel) ScrollView в iphone - PullRequest
0 голосов
/ 17 марта 2011

я добавил 10 меток (метки содержат некоторые данные) для просмотра прокрутки. Я хочу получить значение метки в определенном месте. Можете ли вы дать мне знать, как получить значение в этом месте. Пожалуйста, дайте предложение для этого код, что я написал. как я могу получить значение выбранного пользователем языка

-(void)printLanguage
 {
    NSLog(@"in print language method");

    //int y=0;
   //NSMutableArray *languageArray=[[NSMutableArray alloc]initWithObjects:@"Chinese",@"Spanish",@"English",@"Arabic",@"Hindi",@"Bengali",@"Portuguese",@"Russian",@"Japanese",@"German",nil];
  //UILabel *languageLabel=[[UILabel alloc]initWithFrame:CGRectMake(0, y ,90,30 )];

  languagValue=0;

  int y=0;
  NSMutableArray *languageArray=[[NSMutableArray alloc]initWithObjects:@"Chinese",@"Spanish",@"English",@"Arabic",@"Hindi",@"Bengali",@"Portuguese",@"Russian",@"Japanese",@"German",nil]; 


for(languagValue=0;languagValue<[languageArray count];languagValue++)
{
    UILabel *languageLabel=[[UILabel alloc]initWithFrame:CGRectMake(0, y ,90,30 )];
    NSLog(@"array count is @%d",[languageArray count]);
    languageLabel.text=[languageArray objectAtIndex:languagValue];
    NSLog(@"array objectat index is @%@",[languageArray objectAtIndex:languagValue]);
    languageLabel.font=[UIFont systemFontOfSize:19.0];
    languageLabel.backgroundColor=[UIColor clearColor];
    [languageScrollView addSubview:languageLabel];
    //  [languageScrollView addSubview:languageLabel];
    //y+=90;        
    y+=languageLabel.frame.size.height;
    [languageLabel release];

}   

   [languageScrollView setShowsHorizontalScrollIndicator:NO];
   [languageScrollView setShowsVerticalScrollIndicator:NO];
   [languageScrollView setContentSize:CGSizeMake(genderScrollView.frame.size.width, y)];

}

Спасибо,

Гириш

Ответы [ 2 ]

2 голосов
/ 17 марта 2011

Кто-то должен был установить эти значения, не так ли? :) Почему вы спрашиваете метки об их значениях, если вы уже должны это знать, чтобы установить их в первую очередь.

РЕДАКТИРОВАТЬ: видя ваш код, вы, вероятно, сможете понять из contentOffset представления прокрутки, но, похоже, вам лучше использовать UIPicker или UITableView, где предоставляется вся эта инфраструктура бесплатно

1 голос
/ 17 марта 2011

UILabel не является интерактивным компонентом Гириш. Таким образом, вы не можете получить событие его выбора. Лучше использовать кнопки UIB. Я отредактировал ваш код и добавил один метод. Просто сделайте languageArray глобальным, и код будет работать нормально.

-(void)youMethod
{
    //int y=0;
    //NSMutableArray *languageArray=[[NSMutableArray alloc]initWithObjects:@"Chinese",@"Spanish",@"English",@"Arabic",@"Hindi",@"Bengali",@"Portuguese",@"Russian",@"Japanese",@"German",nil];
    //UILabel *languageLabel=[[UILabel alloc]initWithFrame:CGRectMake(0, y ,90,30 )];

    languagValue=0;

    int y=0;
    NSMutableArray *languageArray=[[NSMutableArray alloc]initWithObjects:@"Chinese",@"Spanish",@"English",@"Arabic",@"Hindi",@"Bengali",@"Portuguese",@"Russian",@"Japanese",@"German",nil]; 


    for(languagValue=0;languagValue<[languageArray count];languagValue++)
    {
         UILabel *languageLabel=[[UILabel alloc]initWithFrame:CGRectMake(0, y ,90,30 )];
         UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];
         btn.frame = CGRectMake(0, y ,90,30 );
         btn.tag = languagValue;
         [btn addTarget:self action:@selector(languageSelected:) forControlEvents:UIControlEventTouchUpInside];
         NSLog(@"array count is @%d",[languageArray count]);
         languageLabel.text=[languageArray objectAtIndex:languagValue];
         NSLog(@"array objectat index is @%@",[languageArray objectAtIndex:languagValue]);
         languageLabel.font=[UIFont systemFontOfSize:19.0];
         languageLabel.backgroundColor=[UIColor clearColor];
         [languageScrollView addSubview:languageLabel];
         [languageScrollView addSubview:btn];
         //  [languageScrollView addSubview:languageLabel];
         //y+=90;        
         y+=languageLabel.frame.size.height;
         [languageLabel release];

         }   
         [languageScrollView setShowsHorizontalScrollIndicator:NO];
         [languageScrollView setShowsVerticalScrollIndicator:NO];

         [languageScrollView setContentSize:CGSizeMake(genderScrollView.frame.size.width, y)];

}

-(void)languageSelected:(id)sender
{
    UIButton * btn = (UIButton*)sender;
    int selectedIndex = btn.tag;
    NSString * selectedLanguage = [languageArray objectAtIndex:selectedIndex];
}
...