Bli*_*ios 8 objective-c uitabbarcontroller uitabbaritem ios
我在标签栏上显示徽章,但是当数字增加时,它会显示在标签栏项目中,如图所示

我想稍微向左移动徽章视图,使其适合选定的选项卡image.i尝试如此处所述 ,但没有运气.那么有没有办法调整徽章视图位置?任何帮助将不胜感激.
我发现Kateryna的答案对于让我走上正轨非常有用,但我不得不稍微更新一下:
func repositionBadge(tab: Int){
for badgeView in self.tabBarController!.tabBar.subviews[tab].subviews {
if NSStringFromClass(badgeView.classForCoder) == "_UIBadgeView" {
badgeView.layer.transform = CATransform3DIdentity
badgeView.layer.transform = CATransform3DMakeTranslation(-17.0, 1.0, 1.0)
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,选项卡整数不是零索引,因此第一个选项卡将是数字1,第二个选项卡将是2,等等.
更新徽章值时,请添加以下方法:
func updateBadge(#value: UInt, tabBarItemTag: Int) {
self.viewControllerForTag(tabBarItemTag)?.tabBarItem.badgeValue = value
for badgeView in (tabBar.subviews[tabBarItemTag] as! UIView).subviews {
let className = "\(_stdlib_getDemangledTypeName(badgeView))"
if className.rangeOfString("BadgeView").location != NSNotFound {
badgeView.layer.transform = CATransform3DIdentity
badgeView.layer.transform = CATransform3DMakeTranslation(0.0, 10.0, 20.0)
}
}
}
Run Code Online (Sandbox Code Playgroud)
您需要使用第二个CATransform3DMakeTranslation来进行正确定位.在此代码中,徽章在底部/左侧移动一点.首先需要CATransform3DMakeTranslation来假装徽章移动.它是一个Swift代码,但您可以轻松地将其转换为Objective-C.
| 归档时间: |
|
| 查看次数: |
7389 次 |
| 最近记录: |