自定义UIPickerView与自定义背景颜色

时间:2012-07-11 05:39:52

标签: ios objective-c cocoa-touch uipickerview picker

我创建了一个示例选择器视图,它将显示一些细节。使用以下方法设置背景颜色:

_pickerView.backgroundColor = [UIColor redColor]; 

似乎不起作用。但我希望我能创建一个像下图这样的选择器视图

enter image description here

我试图做的是,整个PickerView背景颜色不应该是白色,它应该填充我给的UIColor。那可能吗??怎么做?

6 个答案:

答案 0 :(得分:27)

除了Nina的答案之外,下面是一些很好的自定义Picker视图控件,它在性能和可定制方面都很好用。

  1. http://www.cocoacontrols.com/platforms/ios/controls/cppickerview
  2. http://www.cocoacontrols.com/platforms/ios/controls/afpickerview
  3. http://www.cocoacontrols.com/platforms/ios/controls/v8horizontalpickerview(水平PickerView)

答案 1 :(得分:2)

我编写了一个自定义选择器视图,它使用UITableView作为起点。您可以随意自定义它。

https://github.com/derekju/DjuPickerView

答案 2 :(得分:1)

您可以通过将tableview单元格放入其中来更改所选颜色。

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
UITableViewCell *cell = (UITableViewCell *)view;

if( cell == nil ) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] autorelease];
    [cell setBackgroundColor:[UIColor redColor]];

    [cell setBounds: CGRectMake(0, 0, cell.frame.size.width -20 , 44)];
    cell.textLabel.text = [self.userNameArray objectAtIndex:row];
    cell.userInteractionEnabled = NO;
}

return cell;
}

答案 3 :(得分:1)

很难自定义UIPickerView。

您可以选择在默认外观中使用它,或尝试使用其他UIKit组件(如UITableView)模拟UIPickerView。有些库使用UITableView来模拟更灵活的UIPickerView。

答案 4 :(得分:0)

UIPickerView 有子视图。将图像分配给视图并将其添加到索引2处的子视图,将改变选择器视图的背景。

我有同样的问题:-)在这里看到我的问题!! Customize UIPickerView's Skin with images

或者您可以使用 AFPickerView

答案 5 :(得分:0)

API不提供更改选择拨号程序的样式和颜色的方法。您只能更改选择器的内部视图,以便设计。 由于UIPickerView没有UI_APPEARANCE_SELECTOR。

查看以下链接将帮助您。 Custom iOS UIDatepicker using UIAppearance