这可能是一个愚蠢而且非常简单的问题,但我无法解决它。
我有一个带有黑色背景的视图控制器,我在其上放置了一个PickerView控件。我已经设置了委托和数据源,并确认它们正常工作。
当我将相同的选择器视图放在黑色背景上,并将色调设置为白色并将背景颜色设置为清除时,选择器视图是不可见的。我想要做的就是在黑色背景上有白色字体,也就是说,可以看到选择器视图。我发现使选择器视图可见的唯一方法是将背景设置为白色,这会破坏此应用程序的设计。
显然我错过了什么,但是什么?有什么建议?谢谢!
答案 0 :(得分:3)
在您的选择器视图委托中,不是提供titleForRow:
,而是为attributedTitleForRow:
提供颜色为白色的属性字符串。
或者,使用viewForRow:
并提供字体颜色为白色的UILabel。
答案 1 :(得分:3)
色调选项会使背景视图着色。
如果您希望文字为白色,则应将文字颜色设置为白色(source):
- (NSAttributedString *)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component {
NSString *title = @"sample title";
NSAttributedString *attString = [[NSAttributedString alloc] initWithString:title attributes:@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
return attString;
}