源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

iOS 中Swift仿微信添加提示小红点功能(无数字)

  • 时间:2021-11-29 12:00 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:iOS 中Swift仿微信添加提示小红点功能(无数字)
具体内容详情如下所示: [list] [*]以分类的方式实现[/*] [/list] 代码 UITabBar+Extenstion.swift
fileprivate let lxfFlag: Int = 666
extension UITabBar {
 // MARK:- 显示小红点
 func showBadgOn(index itemIndex: Int, tabbarItemNums: CGFloat = 4.0) {
  // 移除之前的小红点
  self.removeBadgeOn(index: itemIndex)
  // 创建小红点
  let bageView = UIView()
  bageView.tag = itemIndex + lxfFlag
  bageView.layer.cornerRadius = 5
  bageView.backgroundColor = UIColor.red
  let tabFrame = self.frame
  // 确定小红点的位置
  let percentX: CGFloat = (CGFloat(itemIndex) + 0.59) / tabbarItemNums
  let x: CGFloat = CGFloat(ceilf(Float(percentX * tabFrame.size.width)))
  let y: CGFloat = CGFloat(ceilf(Float(0.115 * tabFrame.size.height)))
  bageView.frame = CGRect(x: x, y: y, width: 10, height: 10)
  self.addSubview(bageView)
 }
 // MARK:- 隐藏小红点
 func hideBadg(on itemIndex: Int) {
  // 移除小红点
  self.removeBadgeOn(index: itemIndex)
 }
 // MARK:- 移除小红点
 fileprivate func removeBadgeOn(index itemIndex: Int) {
  // 按照tag值进行移除
  _ = subviews.map {
   if $0.tag == itemIndex + lxfFlag {
    $0.removeFromSuperview()
   }
  }
 }
}
[b]使用[/b]
// 默认4个tabbarItem
self.tabBarController?.tabBar.showBadgOn(index: 2)
// 如果不是则用这个方法
// self.tabBarController?.tabBar.showBadgOn(index: Int, tabbarItemNums: CGFloat)
[b]效果[/b] [img]http://files.jb51.net/file_images/article/201705/2017050211345845.png[/img] 小红点 以上所述是小编给大家介绍的iOS 中Swift仿微信添加提示小红点功能(无数字),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程素材网网站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部