gpt4 book ai didi

swift - Swift 中的 NSAttributedString

转载 作者:行者123 更新时间:2023-11-28 07:13:12 37 4
gpt4 key购买 nike

我的 ViewController 中有一个 UIPickerView。起初我想使用 attributedTitleForRow(),但我需要使字体更小,所以我使用了 viewForRow...reusingView()。因为我不想重写我的 attributedTitleForRow() 代码,所以我做了以下事情:

let attributedString = pickerView(
pickerView, attributedTitleForRow: row,
forComponent: component)

之后我想设置 newView 的属性(UILabel) .attributedText = attributedString 我从上面的行中得到一个错误:pickerView(... ) -> $T4 不等同于 其余部分未显示在我的屏幕上,但通常其余部分仅为 UInt8。我不知道错误在哪里。任何帮助都会很棒:]

viewForRow() 函数中的全部代码:

        var newView = view as? UILabel
if newView == nil {
newView = UILabel()
}
newView!.font = UIFont.systemFontOfSize(16.0)
newView!.textColor = UIColor.blueColor()
newView!.adjustsFontSizeToFitWidth = true
newView!.minimumScaleFactor = 0.6
newView!.attributedText = (
pickerView(pickerView, attributedTitleForRow: row,
forComponent: component))!
newView!.textAlignment = .Center
return newView!

调用其他 pickerView 函数的行不起作用 - 不仅是上面代码中现在的方式

最佳答案

self重写关键行,一切都会好起来的:

newView!.attributedText = self.pickerView(
pickerView, attributedTitleForRow:row,
forComponent:component)

这将允许您的代码编译。

原因显然是方法参数中的 pickerView 掩盖了您现有的 pickerView... 方法。使用 self 消除歧义。

(但是,我担心这永远不会起作用,因为永远不会调用此代码。如果实现了 attributedTitleForRow,也许 viewForRow 会被忽略?你将不得不进行实验,看看我的担忧是否合理。)

关于swift - Swift 中的 NSAttributedString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27581752/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com