UIPickerView的奇怪输出

时间:2011-04-28 09:31:46

标签: iphone ipad

我有基于标签的应用程序,我需要在点击按钮时选择器视图显示为操作表

我使用以下代码

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

单击按钮时出现问题,而不是选择器视图

如何解决这个问题,我为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 "];

1 个答案:

答案 0 :(得分:0)

我认为你的挑选者框架不够大。我通常从325和250开始选择一个选择器并从那里开始。所以你设置框架的线应该是这个。

CGRect pickerFrame = CGRectMake(0, 40, 325, 250);  
相关问题