【问题标题】:how get values from subview(UILabel) of ScrollView in iphone如何从 iPhone 中 ScrollView 的子视图(UILabel)获取值
【发布时间】:2011-03-17 11:12:13
【问题描述】:

我在滚动视图中添加了 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)];

}

谢谢,

girish

【问题讨论】:

    标签: iphone objective-c cocoa-touch uiscrollview uilabel


    【解决方案1】:

    一定是有人设置了这些值,不是吗? :) 当您必须首先知道标签才能设置标签时,为什么还要询问标签的值。

    编辑:看到您的代码,您可能可以从滚动视图的contentOffset 中找出答案,但似乎您最好使用提供所有这些基础设施的UIPickerUITableView免费

    【讨论】:

    • 我将显示我的代码,你能解释一下我必须获得该特定用户选择值的值吗
    【解决方案2】:

    UILabel 不是交互式组件 Girish。所以你不能得到它的选择事件。更好地使用 UIButtons。 我已经编辑了您的代码并添加了一种方法。只需将 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];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-11
      • 2012-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多