如何解决UIscrollview中带有标签的问题

问题描述:

我正在做一个UIscrollView的小概念。我给scrollview(语言)附加了10个标签,我想从标签中检索用户选择的标签值。该代码正在执行并正在运行,但有时候它会以任何异常/错误结束。如何解决UIscrollview中带有标签的问题

注意:我有一个疑问,那就是当第一次出现屏幕时。如果我按下了向上滚动视图按钮,滚动视图中的标签正在移动到最后一个label.if我按下了向下按钮移动第一label.it只发生了第一次移动一起来后/下

可以解决这个问题的任何一个帮助...

-(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; 
    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)]; 
     } 


    -(IBAction)languageDownButton:(id)sender 
    { 
    NSLog(@"language scroll view up button pressed"); 

    languagValue-=1; 

    NSLog(@"value of language value is @%d",languagValue); 
    if(!(languagValue>0)) 
    { 
     languagValue=0; 

    } 
    else if(!(languagValue<10)) 
    { 
     languagValue=9; 
    } 
    else { 
     NSLog(@"gender value*24 is @%d",(languagValue)*30); 

     [languageScrollView setContentOffset:CGPointMake(0, (languagValue)*30) animated:YES]; 


    }  
} 


    -(IBAction)languageUpButton:(id)sender 
    { 

    NSLog(@"language scroll view down button pressed"); 
     NSLog(@"value of language value is @%d",languagValue); 
    languagValue+=1; 

    if(!(languagValue>0)) 
    { 
     languagValue=0; 

    } 
    else if(!(languagValue<10)) 
    { 
     languagValue=9; 
    } 
    else { 
     NSLog(@"gender value*24 is @%d",(languagValue)*30); 

     [languageScrollView setContentOffset:CGPointMake(0, (languagValue)*30) animated:YES]; 


    } 
} 

你应该更好地使用的UITableView此,使用它的委托方法,您可以轻松地显示语言数组。 并为了创建选定的语言,将使用此委托方法。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

请参阅文档。 http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableView_Class/Reference/Reference.html