吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1920|回复: 9
收起左侧

[其他原创] [ios]ios富文本优化价格显示(连载10)

  [复制链接]
debug_cat 发表于 2021-3-17 22:39
商品列表UI优化效果,先看看效果图。
Xnip2021-03-17_22-15-03.png

---

富文本的使用

今天看到了jdAPP的商品页面,他们家的商品价格,是💰符合小于价格

然后价格后面的小数点小于中间的价格。我也想实现这样的一个效果。

我们现在来学习ios中,富文本的使用。这个NSMutableAttributedString可以实现很多效果。如果不用它来实现,要拆分label的话就比较恶心了。

现在我们把价格的效果,做成一个工具。原价的中划线也做成工具。就是提取成一个方法,以后需要用到的地方,直接调用公共方法即可。

//
//  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 [NSAttributedString.Key : Any], range: NSRange(location: 0, length: 1))
        mutablePrice.addAttributes(dicNum as [NSAttributedString.Key : Any], 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
    }
}

上面已经写好了工具了,我们看看如何使用它

//处理中划线
let original = "原价:" + item.zkFinalPrice!
//把处理中划线的值赋值
labOriginalPrice.attributedText = AppFontUtils.strikethroughStyle(content: original)

我们再处理价格显示的高矮效果

//优惠之后的
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

免费评分

参与人数 3吾爱币 +3 热心值 +3 收起 理由
mo211683 + 1 + 1 我很赞同!
lyl610abc + 1 + 1 热心回复!
sob13600 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

lyl610abc 发表于 2021-3-17 22:57
IOS开发呀,回想起以前用Swift写过个类咸鱼的二手市场
玩过以后就没再碰了
shaonianNo1 发表于 2021-3-18 07:47
 楼主| debug_cat 发表于 2021-3-18 11:25
lyl610abc 发表于 2021-3-17 22:57
IOS开发呀,回想起以前用Swift写过个类咸鱼的二手市场
玩过以后就没再碰了

你是真大佬,什么都会啊,汇编,c++,逆向应该是拿手。
ios我是想学习下自己写个app玩的。不知道大佬做什么工作的,全栈大佬。
lyl610abc 发表于 2021-3-18 12:00
莫问刀 发表于 2021-3-18 11:25
你是真大佬,什么都会啊,汇编,c++,逆向应该是拿手。
ios我是想学习下自己写个app玩 ...

我只是个萌新,目前因为太菜没找到工作
 楼主| debug_cat 发表于 2021-3-19 12:31
lyl610abc 发表于 2021-3-18 12:00
我只是个萌新,目前因为太菜没找到工作

我信了你的鞋
lyl610abc 发表于 2021-3-19 13:39

我是真的菜,目前还在找工作
 楼主| debug_cat 发表于 2021-3-19 15:44
lyl610abc 发表于 2021-3-19 13:39
我是真的菜,目前还在找工作

我认识一个逆向的大佬,之前他帮朋友找逆向工程师的。有意向的话,我可以去问问,是否还需要招人
lyl610abc 发表于 2021-3-19 17:25
莫问刀 发表于 2021-3-19 15:44
我认识一个逆向的大佬,之前他帮朋友找逆向工程师的。有意向的话,我可以去问问,是否还需要招人

我想找驱动开发的工作,目前已经可以写驱动过掉TenProtect了
现在主要在折腾大四的毕业论文还有混吃等死中
工作的事也不是特别着急,让我在混吃等死一阵子
 楼主| debug_cat 发表于 2021-3-20 17:25
lyl610abc 发表于 2021-3-19 17:25
我想找驱动开发的工作,目前已经可以写驱动过掉TenProtect了
现在主要在折腾大四的毕业论文还有混吃等死 ...

老哥牛,我以为找逆向工作呢,哈哈,那好你按照自己的进度来。如果有需要我可以问下上海那边朋友。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 17:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表