2011-04-28 126 views
0

我有标签的基于应用程序,我需要在点击按钮pickerview表现为动作片奇怪的输出UIPickerView

我用下面的代码

-(IBAction)DisplayPicker:(id)sender{ 

    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil]; 

    [actionSheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent]; 
    CGRect pickerFrame = CGRectMake(0, 40, 20, 20); 
    UIPickerView *pickerView = [[UIPickerView alloc] initWithFrame:pickerFrame]; 
    pickerView.showsSelectionIndicator = YES; 
    pickerView.dataSource = self; 
    pickerView.delegate = self; 
    [actionSheet addSubview:pickerView]; 
    [pickerView release]; 
    UISegmentedControl *closeButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Close"]]; 
    closeButton.momentary = YES; 
    closeButton.frame = CGRectMake(260, 7.0f, 50.0f, 30.0f); 
    closeButton.segmentedControlStyle = UISegmentedControlStyleBar; 
    closeButton.tintColor = [UIColor blackColor]; 
    [closeButton addTarget:self action:@selector(dismissActionSheet:) forControlEvents:UIControlEventValueChanged]; 
    [actionSheet addSubview:closeButton]; 
    [closeButton release]; 
    [actionSheet showInView:self.view]; 
    [actionSheet setBounds:CGRectMake(0, 0, 320, 485)]; 
} 

的问题,当点击该按钮线出现,而不是pickerview

如何解决这个请,我为iPad开发 我用下面的委托功能

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; 
{ 
    return 1; 
} 

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
    NSLog([arrayNo objectAtIndex:row]) ; 
} 

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component; 
{ 
    return [arrayNo count]; 
} 

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component; 
{ 
    return [arrayNo objectAtIndex:row]; 
} 

,我初始化arrayNo使用

arrayNo = [[NSMutableArray alloc] init]; 
[arrayNo addObject:@" 100 "]; 
[arrayNo addObject:@" 200 "]; 
[arrayNo addObject:@" 400 "]; 
[arrayNo addObject:@" 600 "]; 
[arrayNo addObject:@" 1000 "]; 

回答

0

我认为这是你的选择器框架是不够大。我通常从325和250开始选择一个,然后从那里出发。所以你的线路设置框架应该是这样的。

CGRect pickerFrame = CGRectMake(0, 40, 325, 250); 
+0

它appeaered分开的选择器,但不是全部,甚至增加它后,你可以尝试 – AMH 2011-04-28 10:25:19

+0

当我是你的代码粘贴到它显示的选择器正确,只要我行注释掉一个新项目将dataSource和delegate设置为self。如果你注释掉这些行,然后选择器是正确的大小(但是空的),那么你应该看看你的数据源和委托方法。 – Walter 2011-04-28 11:18:45

+0

我用我使用的委托功能更新了这个问题,你能帮我做些什么: – AMH 2011-04-28 11:55:57