Ios 如何调整文本大小而不显示。。。在UIPickerView?
我用了3个PickerView,有几个词很大,不适合PickerView,看起来像这样“IamAWordVer…”,我不希望这种情况发生。我希望它调整字体大小或类似的东西来适应PickerView中的所有单词,但我不想影响PickerView的大小或其他picker视图的字体大小,包括发生在这个PickerView中的单词 例如,所有单词都使用默认值,如果不适合,请调整大小以适合所有单词Ios 如何调整文本大小而不显示。。。在UIPickerView?,ios,swift,uipickerview,Ios,Swift,Uipickerview,我用了3个PickerView,有几个词很大,不适合PickerView,看起来像这样“IamAWordVer…”,我不希望这种情况发生。我希望它调整字体大小或类似的东西来适应PickerView中的所有单词,但我不想影响PickerView的大小或其他picker视图的字体大小,包括发生在这个PickerView中的单词 例如,所有单词都使用默认值,如果不适合,请调整大小以适合所有单词 func pickerView(pickerView: UIPickerView, viewForRow r
func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView?) -> UIView {
let pickerLabel = UILabel()
if pickerView == pvOne{
pickerLabel.adjustsFontSizeToFitWidth = true
pickerLabel.attributedText = oneText[row] as? NSAttributedString
}
else if(pickerView == pvTwo){
pickerLabel.adjustsFontSizeToFitWidth = true
pickerLabel.attributedText = twoText[row] as? NSAttributedString
}
else if(pickerView == pvThree){
pickerLabel.adjustsFontSizeToFitWidth = true
pickerLabel.attributedText = threeText[row] as? NSAttributedString
}
return pickerLabel
}
它现在显示全部为空使用
nameOfLabel.adjustsFontSizeToFitWidth=true
。我这样解决:
func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView?) -> UIView {
let pickerLabel = UILabel()
if pickerView == pvOne{
pickerLabel.adjustsFontSizeToFitWidth = true
let titleData = oneText[row]
let myTitle = NSAttributedString(string: titleData as! String, attributes: [NSFontAttributeName:UIFont(name: "Georgia", size: 20.0)!,NSForegroundColorAttributeName:UIColor.blackColor()])
pickerLabel.attributedText = myTitle
}
else if(pickerView == pvTwo){
pickerLabel.adjustsFontSizeToFitWidth = true
let titleData = twoText[row]
let myTitle = NSAttributedString(string: titleData as! String, attributes: [NSFontAttributeName:UIFont(name: "Georgia", size: 20.0)!,NSForegroundColorAttributeName:UIColor.blackColor()])
pickerLabel.attributedText = myTitle
}
else if(pickerView == pvThree){
pickerLabel.adjustsFontSizeToFitWidth = true
let titleData = threeText[row]
let myTitle = NSAttributedString(string: titleData as! String, attributes: [NSFontAttributeName:UIFont(name: "Georgia", size: 20.0)!,NSForegroundColorAttributeName:UIColor.blackColor()])
pickerLabel.attributedText = myTitle
}
return pickerLabel
}
您正在将字符串强制转换为NSAttributedString 尝试:
是的,假设他们正在使用
pickerView:viewForRow:forComponent:reusingView:
delegate方法并传递一个标签。我正在这个func pickerView中尝试这样做(pickerView:UIPickerView,viewForRow:Int,forComponent:Int,reusingView:UIView?)->UIView
但是我不知道我在哪里使用了我试图在里面使用的标签的名称让pickerLabel=UILabel()
但是这是一个新的更新你的问题,你的pickerView:viewForRow:forComponent:reusingView:
方法。更新了,我想这就是你问的。剩下的代码呢?您发布的内容只返回一个空标签。您在发布问题之前是否使用了此方法?您在哪里声明pvOne、PVTOW等
func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView?) -> UIView {
let pickerLabel = UILabel()
if pickerView == pvOne{
pickerLabel.adjustsFontSizeToFitWidth = true
pickerLabel.text = oneText[row]
}
else if(pickerView == pvTwo){
pickerLabel.adjustsFontSizeToFitWidth = true
pickerLabel.text = twoText[row]
}
else if(pickerView == pvThree){
pickerLabel.adjustsFontSizeToFitWidth = true
pickerLabel.text = threeText[row]
}
return pickerLabel
}