我成功地将支票号码作为文本添加到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/

10-12 03:35