Dies ist Ihre beste Wette. Fügen Sie diese Erweiterung im Dateibereich hinzu, und Sie können die Ausweise nach Belieben anpassen. Rufen Sie einfach self.tabBarController!.setBadges([1,0,2])
in einem Ihrer root-View-Controller an.
Um klar zu sein, ist das für eine Tab-Leiste mit drei Elementen, wobei die Abzeichen Werte von links nach rechts gehen.
Wenn Sie Bilder hinzufügen möchten, anstatt nur die addBadge
Methode ändern
extension UITabBarController {
func setBadges(badgeValues:[Int]){
var labelExistsForIndex = [Bool]()
for value in badgeValues {
labelExistsForIndex.append(false)
}
for view in self.tabBar.subviews {
if view.isKindOfClass(PGTabBadge) {
let badgeView = view as! PGTabBadge
let index = badgeView.tag
if badgeValues[index]==0 {
badgeView.removeFromSuperview()
}
labelExistsForIndex[index]=true
badgeView.text = String(badgeValues[index])
}
}
for var i=0;i<labelExistsForIndex.count;i++ {
if labelExistsForIndex[i] == false {
if badgeValues[i] > 0 {
addBadge(i, value: badgeValues[i], color:UIColor(red: 4/255, green: 110/255, blue: 188/255, alpha: 1), font: UIFont(name: "Helvetica-Light", size: 11)!)
}
}
}
}
func addBadge(index:Int,value:Int, color:UIColor, font:UIFont){
let itemPosition = CGFloat(index+1)
let itemWidth:CGFloat = tabBar.frame.width/CGFloat(tabBar.items!.count)
let bgColor = color
let xOffset:CGFloat = 12
let yOffset:CGFloat = -9
var badgeView = PGTabBadge()
badgeView.frame.size=CGSizeMake(17, 17)
badgeView.center=CGPointMake((itemWidth * itemPosition)-(itemWidth/2)+xOffset, 20+yOffset)
badgeView.layer.cornerRadius=badgeView.bounds.width/2
badgeView.clipsToBounds=true
badgeView.textColor=UIColor.whiteColor()
badgeView.textAlignment = .Center
badgeView.font = font
badgeView.text = String(value)
badgeView.backgroundColor = bgColor
badgeView.tag=index
tabBar.addSubview(badgeView)
}
}
class PGTabBadge: UILabel {
}
Sie für diese Idee danken. Ich werde das ausprobieren. Ich habe jedoch eine Anschlussfrage. Ist diese Badge-Anpassung in Ordnung, wenn diese App im AppStore eingereicht wird? –
Sie sind herzlich willkommen ... bitte seien Sie so nett und akzeptieren Sie die Antwort, wenn Sie zufrieden sind. Nun .... das ist kein Problem, da Sie das von Apple zur Verfügung gestellte Abzeichen nicht verwenden müssen, wenn Sie es nicht mögen. Sie kommen nur in Schwierigkeiten, wenn Sie versuchen, private Klassen von Apple zu ändern. – sesc360