代码之家  ›  专栏  ›  技术社区  ›  Bryan

更新UIPickerView行数

  •  0
  • Bryan  · 技术社区  · 14 年前

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

    问题是我将这个pickerView添加到titleView中导航条的中心。如果我尝试取消UIPickerView并重新分配它以希望再次调用委托,那么PickerView将显示在导航栏的左侧,而不是中间。我猜可能是界面生成器的设置把它放在了中间。。。?

    这是密码:

    -(void) setupPickerView{
    myPickerView = nil;
    myPickerView = [[UIPickerView alloc] init];
    myPickerView.backgroundColor = [UIColor clearColor];
    myPickerView.delegate = self;
    myPickerView.dataSource = self;
    myPickerView.showsSelectionIndicator = YES;
    [self.navigationController.navigationBar setBackgroundView:myPickerView];
    
    CGSize pickerSize = [myPickerView sizeThatFits:CGSizeZero];
    UIView *pickerTransformView = [[UIView alloc] initWithFrame:CGRectMake(-40.0, -43.0, pickerSize.width, pickerSize.height)];
    pickerTransformView.transform = CGAffineTransformMakeScale(.55f, .55f);
    
    [pickerTransformView addSubview:myPickerView];
    [self.navigationController.navigationBar setBackgroundView:pickerTransformView];
    
    }
    
    1 回复  |  直到 9 年前
        1
  •  4
  •   mjdth    14 年前

    当你在数组中添加一些东西时 [UIPickerView reloadAllComponents] - (void)reloadComponent:(NSInteger)component ?

    这很可能会查询委托并调用检查数组和重新加载视图所需的所有内容。