[ios]ios富文本优化价格显示(连载10)
商品列表UI优化效果,先看看效果图。---
## 富文本的使用
今天看到了jdAPP的商品页面,他们家的商品价格,是💰符合小于价格
然后价格后面的小数点小于中间的价格。我也想实现这样的一个效果。
我们现在来学习ios中,富文本的使用。这个`NSMutableAttributedString`可以实现很多效果。如果不用它来实现,要拆分label的话就比较恶心了。
现在我们把价格的效果,做成一个工具。原价的中划线也做成工具。就是提取成一个方法,以后需要用到的地方,直接调用公共方法即可。
```swift
//
//AppFontUtils.swift
//uitable
//
//Created by Alice on 2021/3/17.
//处理价格显示高矮效果的工具
//
import UIKit
// 文字相关的工具
class AppFontUtils: NSObject {
// 提供价格和需要的大小,颜色,转成高矮效果
public static func formatThePrice(priceContent: String, tagFontSize: UIFont, priceFontSize: UIFont, textColor: UIColor) -> NSAttributedString{
let dic = [NSAttributedString.Key.foregroundColor: textColor,
NSAttributedString.Key.font: tagFontSize,
]
let dicNum = [NSAttributedString.Key.foregroundColor: textColor,
NSAttributedString.Key.font: priceFontSize,
]
//富文本
let mutablePrice = NSMutableAttributedString.init(string: priceContent)
mutablePrice.addAttributes(dic as , range: NSRange(location: 0, length: 1))
mutablePrice.addAttributes(dicNum as , range: NSRange(location: 1, length: priceContent.count - 3))
return mutablePrice
}
// 处理中划线
public static func strikethroughStyle(content: String) -> NSAttributedString {
let mutableStr = NSMutableAttributedString.init(string: content)
mutableStr.addAttribute(NSAttributedString.Key.strikethroughStyle, value: NSNumber.init(value: 1), range: NSRange(location: 0, length: mutableStr.length))
return mutableStr
}
}
```
---
上面已经写好了工具了,我们看看如何使用它
```swift
//处理中划线
let original = "原价:" + item.zkFinalPrice!
//把处理中划线的值赋值
labOriginalPrice.attributedText = AppFontUtils.strikethroughStyle(content: original)
```
我们再处理价格显示的高矮效果
```swift
//优惠之后的
let coupon = item.couponAmount
let price = (item.zkFinalPrice! as NSString).floatValue
//取2位小数
let finalPrice = String.init(format: "%.2f", (price - Float(coupon)))
let priceContent = "¥\(finalPrice)"
//高矮处理,把¥和价格都放进来一起处理
labPrice.attributedText= AppFontUtils.formatThePrice(priceContent: priceContent, tagFontSize: UIFont.systemFont(ofSize: 10), priceFontSize:UIFont.boldSystemFont(ofSize: 14), textColor: ColorUtils.parser("#F35410"))
```
---
以后需要这样处理价格就方便多了。
今天学习到这里了,后面计划做简单的商品详情页面和生成优惠券的功能。
代码地址:
https://github.com/cat13954/IOSUiTableViewSample IOS开发呀,回想起以前用Swift写过个类咸鱼的二手市场{:301_998:}
玩过以后就没再碰了{:301_977:} 学习中 感谢楼主~~~ lyl610abc 发表于 2021-3-17 22:57
IOS开发呀,回想起以前用Swift写过个类咸鱼的二手市场
玩过以后就没再碰了
:'(weeqw你是真大佬,什么都会啊{:1_921:},汇编,c++,逆向应该是拿手。
ios我是想学习下自己写个app玩的。不知道大佬做什么工作的,全栈大佬。 莫问刀 发表于 2021-3-18 11:25
你是真大佬,什么都会啊,汇编,c++,逆向应该是拿手。
ios我是想学习下自己写个app玩 ...
我只是个萌新,目前因为太菜没找到工作{:301_972:} lyl610abc 发表于 2021-3-18 12:00
我只是个萌新,目前因为太菜没找到工作
我信了你的鞋{:301_1001:} 莫问刀 发表于 2021-3-19 12:31
我信了你的鞋
{:301_973:}我是真的菜,目前还在找工作{:301_977:} lyl610abc 发表于 2021-3-19 13:39
我是真的菜,目前还在找工作
:lol我认识一个逆向的大佬,之前他帮朋友找逆向工程师的。有意向的话,我可以去问问,是否还需要招人 莫问刀 发表于 2021-3-19 15:44
我认识一个逆向的大佬,之前他帮朋友找逆向工程师的。有意向的话,我可以去问问,是否还需要招人
我想找驱动开发的工作,目前已经可以写驱动过掉TenProtect了
现在主要在折腾大四的毕业论文还有混吃等死中{:301_1008:}
工作的事也不是特别着急,让我在混吃等死一阵子{:301_975:} lyl610abc 发表于 2021-3-19 17:25
我想找驱动开发的工作,目前已经可以写驱动过掉TenProtect了
现在主要在折腾大四的毕业论文还有混吃等死 ...
老哥牛,我以为找逆向工作呢,哈哈,那好你按照自己的进度来。如果有需要我可以问下上海那边朋友。
页:
[1]