UITabBar 的 badgeValue 小技巧

2022-08-30 14:54:11 字數 1147 閱讀 4508

uitabbar 之 badgevalue 問題記錄

應用上架後, 測試報給我乙個這樣的情況: 由於第乙個模組的需要使用到 tabbar 的 badgevalue, 而這個值是通過介面獲取到的, 當應用啟動以後, 由於這個時候網路請求比較多, 如果網路不好的情況下, 該值會有一定延遲才能獲取得到, 這時候 badvalue 對應的小紅點首先是沒有數字, 然後便是從對應的 tabbaritem 的左上角慢慢的移動到右上角.

由於一開始感覺這個需求會比較簡單, 所以是直接給 tabbaritem.badgevalue 賦值, 並沒有做其他措施

給 tabbar 新增乙個分類, 自定義控制項實現 badgevalue 的效果.

一共三個方法(swift):

/// 在 tabbar 的指定位置顯示 badvalue

////// - parameters:

/// - index: 指定位置

/// - badgevalue: 顯示的值

func showbadgeonitemindex(index: int, badgevalue: int)

let percentx = (float(index) + 0.55) / float(count)

let x = ceilf(percentx * float(tabframe.size.width))

let y = ceilf(0.1 * float(tabframe.size.height))

if badgevalue < 10 else if badgevalue >= 10 && badgevalue < 100 else

self.addsubview(badgeview)

}/// 隱藏 badgevalue, 為0時呼叫

////// - parameter index: 需要隱藏的 tabbaritem 的位置

func hidebadgeonitemindex(index: int)

/// 移除 tabbaritem 的 badgevalue

////// - parameter index: 需要移除的 tabbaritem 的位置

func removebadgeonitemindex(index: int)

}}

UItabBar上新增紅點

系統提供的bagevalue展現形式只能為數字形式。其實小紅點展示形式的實現方式非常簡單 只需要在工程中實現如下的uitabbar分類就可以實現 直接拷貝一下 即可 在.h檔案中 import inte ce uitabbar wjbadgevalue void showbadgeonitemind...

如何徹底隱藏系統自帶的UITabBar

這個問題曾經一直讓我很頭疼,現在在工作中,終於找到了自己的辦法!1 不使用系統自帶的uitabbar,所以首先要自定義乙個標籤欄,繼承於uiview就可以了 2 隱藏系統自帶的tabbar,方法 在繼承於uitabbarcontroller的類中,新增self.tabbar.hidden yes 3...

UITabBar小紅點(適配iPad)

一 解決上面問題可以採取遍歷uitabbarbutton的方法獲取item的寬度 cgfloat tabbaritemwidth 0 for uiview view in self subviews else 二 自定bagevalue適配 iphone和ipad 系統self.tabbarcont...