Có một hàm trong phương thức ủy nhiệm thanh lịch hơn:
Mục tiêu-C:
- (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;
}
Nếu bạn cũng muốn thay đổi màu sắc của thanh lựa chọn, tôi thấy rằng tôi phải thêm 2 thanh riêng biệt UIViews
vào dạng xem có chứa UIPickerView
, cách nhau 35 điểm, cách nhau 35 điểm cho chiều cao bộ chọn là 180.
Swift 3:
func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
let string = "myString"
return NSAttributedString(string: string, attributes: [NSForegroundColorAttributeName:UIColor.white])
}
Swift 4:
func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
let string = "myString"
return NSAttributedString(string: string, attributes: [NSAttributedStringKey.foregroundColor: UIColor.white])
}
Swift 4.2:
func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
let string = "myString"
return NSAttributedString(string: string, attributes: [NSAttributedString.Key.foregroundColor: UIColor.white])
}
Hãy nhớ khi bạn sử dụng phương thức: Bạn không cần phải triển khai titleForRowInComponent()
vì nó không bao giờ được gọi khi sử dụng attributedTitleForRow()
.