我成功地将支票号码作为文本添加到pickerView中。但我想把支票号码的文本删除。可以将标签文本更改为删除线的代码不适用于pickerView中的项。在pickerView中会得到类似“1023{这是删除线}”的内容。有没有删除线和普通字符的字体?有什么想法吗?
最佳答案
因此,看起来您需要在picker视图中使用NSAttributedString对象。
it looks like the only solution you might have available to you是使用UIPickerViewDelegate方法pickerView:viewForRow:forComponent:reusingView:
。
如果实现该方法,则将返回一个UIView对象,其中可以有一个使用属性字符串的UILabel。
如果这是我的问题,我可能会做如下事情:
func pickerView(_ pickerView: UIPickerView,
viewForRow row: Int,
forComponent component: Int,
reusingView view: UIView?) -> UIView
{
// create a mutable attributed string
let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: "Your String here")
// add strikethrough attribute to the whole string
attributeString.addAttribute(NSStrikethroughStyleAttributeName, value: 2, range: NSMakeRange(0, attributeString.length))
// set up a label
let pickerLabel = UILabel(frame: CGRectMake(0, 0, 200, 21))
pickerLabel.center = CGPointMake(160, 284)
pickerLabel.textAlignment = NSTextAlignment.Center
// and set the contents to the atributedString
pickerLabel.attributedText = attributeString
return pickerLabel
}
关于swift - 在Swift删除线中在pickerView中制作文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35908467/