为啥不使用 UIPickerView 调用属性TitleForRow?

Posted

技术标签:

【中文标题】为啥不使用 UIPickerView 调用属性TitleForRow?【英文标题】:Why doesn't attributedTitleForRow get called with a UIPickerView?为什么不使用 UIPickerView 调用属性TitleForRow? 【发布时间】:2017-08-25 16:11:13 【问题描述】:

根据文档,选择器视图更喜欢使用 attributedTitleForRow 而不是 titleForRow。如果首选返回 nil,则选择器视图回退到 titleForRow

我正在实现这两种方法,attributedTitleForRow 永远不会被调用。即使titleForRow 返回 nil,attributedTitleForRow 返回NSAttributedString,它也不会被调用。但是,titleForRow 总是会被调用。

这是我所拥有的:

- (NSString *)pickerView:(UIPickerView *)pickerView
             titleForRow:(NSInteger)row
            forComponent:(NSInteger)component 
    return @"Hello";


- (NSAttributedString *)pickerView:(UIPickerView *)pickerView
             attributedTitleForRow:(NSInteger)row
                      forComponent:(NSInteger)component 
    return [[NSAttributedString alloc] initWithString:@"World"];

【问题讨论】:

如果只实现 pickerView(_:attributedTitleForRow:forComponent:) ,那么它会被调用吗? 查看***.com/questions/18945119/… @user1000 不,仍然没有调用,但 viewForRow 是 - 看起来我将不得不走那条路。 【参考方案1】:

我没有看到viewForRow 委托方法也被调用了。如果调用此方法,titleForRowattributedTitleForRow 都不会运行。

【讨论】:

以上是关于为啥不使用 UIPickerView 调用属性TitleForRow?的主要内容,如果未能解决你的问题,请参考以下文章

UIPickerView - 第一行选择不调用 didSelectRow

为啥我的 UIPickerView 在选择时崩溃

iOS 为啥我的 UIPickerview 方法在循环?

ASP .NET Web 窗体 - 为啥父级不使用数据绑定表达式调用自定义控件的属性设置器?

UIPickerview 完成按钮不起作用,即使它没有调用选择器方法

UIPickerView 即使在重新查询后也不显示数据