如何解决UIscrollview中带标签的问题
我正在 UIscrollView 上做一个小概念。我在滚动视图(语言)上附加了 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;
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];
}
}
i am doing a small concept on UIscrollView . i attached 10 labels to the scrollview(languages)and i want to retrieve the label value from the label what the user have selected.this code is executing and running .but some time it is terminating with out any exception/error.
Note:i am having doubt one that is when the first time the screen appears .if i press the scrollview up button .The label in the scroll view is moving to last label.if i press the down button than it is moving first label.it is happening only for first time after that it is moving for one up/down
can any one help in solving this problem...
-(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];
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为此,您最好使用 UITableView,通过其委托方法,您可以轻松显示语言数组。
为了获取所选语言,将使用此委托方法。
请参阅文档。
http://developer.apple.com/库/ios/#documentation/uikit/reference/UITableView_Class/Reference/Reference.html
You should better use UITableView for this, with its delegate methods you can easily display your language array.
and for geting the selected language,this delegate method will be used.
see the documentation.
http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableView_Class/Reference/Reference.html