【发布时间】:2010-11-10 09:08:50
【问题描述】:
我有一个 UIPickerView,它由一个名为 sectionNamesArray 的 NSMutableArray 填充。当一个项目被添加到 sectionNamesArray 时,如何手动调用这个委托?
-- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return ([sectionNamesArray count] + 1);
}
问题是我将这个pickerView添加到titleView中navBar的中心。如果我尝试清空 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];
}
【问题讨论】:
标签: iphone objective-c nsmutablearray uipickerview