swift label 計算寬高,添加刪除線

計算寬度/高度

    //方法1.已有具體 label ,給定寬度限制,計算 label 的高度
    let size = label.sizeThatFits(CGSizeMake(limitW, CGFloat(MAXFLOAT)))
    //方法2.已知字符串和字號(+1),通過 NSString 的 sizeWithAttributes 方法計算
    let priceStr = NSString.init(format:"¥ %@",goodsModel.price_disct)
    let attributes = [NSFontAttributeName:UIFont.systemFontOfSize(14)]
    let size = priceStr.sizeWithAttributes(attributes)
    //方法3.已知字符串,字號(+1)和寬度限制,通過 NSString 的 boundingRectWithSize 方法計算
    let priceStr = NSString.init(format:"¥ %@",goodsModel.price_disct)
    let attributes = [NSFontAttributeName:UIFont.systemFontOfSize(14)]
    let size = priceStr.boundingRectWithSize(CGSizeMake(CGFloat(MAXFLOAT), 30), options: .UsesLineFragmentOrigin, attributes: attributes, context: nil).size

添加刪除線
方法一:

      let lineStr = NSAttributedString(string: oldStr,attributes: [NSStrikethroughStyleAttributeName:NSUnderlineStyle.StyleSingle.rawValue])
      oldPriceLabel.attributedText = lineStr

方法二:

      let attributeStr = NSMutableAttributedString(string:oldStr)
      attributeStr.addAttribute(NSStrikethroughStyleAttributeName, value: NSNumber(integer: 1), range: NSMakeRange(0, attributeStr.length))
      oldPriceLabel.attributedText = attributeStr

其實兩個方法效果和原理都是一樣的,你可以根據你的編程習慣或個人喜惡進行選擇.

期待你的評論建議O(∩_∩)O~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,813評論 25 708
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,180評論 4 61
  • 記單詞是很多人英語學習的痛點和難點。通常是記了又忘,忘了又記,考前突擊記,考后忘光光。學語言積累詞匯的目的是為了我...
    通菜的媽媽鐘老師閱讀 749評論 0 2