for tabBarButton in self.tabBar.subviews{
for badgeView in tabBarButton.subviews{
var className=NSStringFromClass(badgeView.classForCoder)
if className == "_UIBadgeView"
{
badgeView.layer.transform = CATransform3DIdentity
badgeView.layer.transform = CATransform3DMakeTranslation(-17.0, 1.0, 1.0)
}
}
}
let firstItemBadgeView = badgeViewForItem(at: 0)!
// Do something with the badge view like setting the border, background color ...
// ex: firstItemBadgeView.backgroundColor = UIColor.clear
7条答案
按热度按时间kuarbcqp1#
我发现Kateryna的回答很有用,让我走上了正确的道路,但我不得不稍微更新一下:
请注意,制表符整数不是零索引的,因此第一个制表符将是数字1,第二个数字2,等等。
anhgbhbe2#
当您更新您的工卡值时,添加这样的方法:
您需要使用第二个CATransform 3DMakeTranslation来进行正确的定位。在这段代码中,徽章在底部/左侧移动了一点。首先需要CATransform 3DMakeTranslation来假装徽章移动。这是一个Swift代码,但你可以很容易地将其转换为Objective-C。
b0zn9rqh3#
徽章默认对齐到标签栏图片。如果你添加大图片作为标签栏项目图片,你可以使用下面的代码调整它。
aamkag614#
在Objective-C中:
cdmah0mi5#
Swift 4、5
我为
UITabBar
创建了一个扩展,它可以快速获取徽章视图和徽章标签:然后你可以这样做:
uttx8gqw6#
在C# Xamarin
ctrmrzij7#
通过将
UITabBarItemAppearance
对象分配给UITabBarAppearance
对象的项目外观属性,并将其分配给tabBar控件的appearance属性,可以更改标记位置。示例:使用iOS 16时,正值似乎会将徽章向左移动 stackedLayoutAppearance,这与文档中的说法相矛盾。