一、解決上面問題可以採取遍歷uitabbarbutton的方法獲取item的寬度
cgfloat tabbaritemwidth = 0;for (uiview *view in [self subviews]) else
}}
二、自定bagevalue適配 iphone和ipad(系統self.tabbarcontroller.tabbaritem.badgevalue就可以)
1、uitabbar+badge.h
- (void)showbadgeonitemindex:(int)index; //顯示小紅點- (void)hidebadgeonitemindex:(int)index; //隱藏小紅點
2、uitabbar+badge.m
**使用需要設定引數 tabbar的個數
*/#define tabbaritemnums 4 //tabbar的數量 如果是5個設定5
@implementation uitabbar (badge)
//顯示小紅點
- (void)showbadgeonitemindex:(int)index else }}
//計算ipad兩邊的寬度
cgfloat padding = (kscreenwidth-tabbaritemwidth*tabbaritemnums)/2;
//計算小紅點的xy座標 (0.6 0.1屬於百分比可以自己定義)
cgfloat x = padding + index*tabbaritemwidth +tabbaritemwidth*0.6;
cgfloat y = 0.1 * self.frame.size.height;
badgeview.frame = cgrectmake(x, y, 10, 10);//圓形大小為10
[self addsubview:badgeview];
}//隱藏小紅點
- (void)hidebadgeonitemindex:(int)index
//移除小紅點
- (void)removebadgeonitemindex:(int)index
}}/*
*使用時:
*顯示*[self.tabbarcontroller.tabbar showbadgeonitemindex:2];
*隱藏*[self.tabbarcontroller.tabbar hidebadgeonitemindex:2]
* */
擴充套件uitabbar,解決訊息提示小紅點過大的問題
系統的uitabar小紅點顯示過大,需要修改其尺寸,我們可以通過擴充套件uitabbar的方式解決 如下 h import inte ce uitabbar badge void showbadgeonitemindex int index 顯示小紅點 void hidebadgeonitemind...
顯示通知小紅點
首先,在draw裡邊建乙個檔案,shap畫乙個橢圓。xml version 1.0 encoding utf 8 xmlns android android shape oval android color ff3b30 android radius 3dp android topleftradiu...
小紅點功能控制項
本意是想把做過的東西沉澱一下,防止重複造輪子。後來想想自己在實現這個的過程中還是走了一點彎路的。雖然網上找的輪子很多,其實大多都華而不實或者功能太多,工作中實現的東西最重要的不是功能炫,而是穩定,一旦需求變更或者出了bug要負責維護,過多的功能會在後期維護的時候造成很大困擾,使用者需要review整...